Skip to content

Commit c86b92c

Browse files
committed
Removed Inf_apply and variants from [simp] as they break proof abstraction in UTP.
1 parent 7bf2ca6 commit c86b92c

2 files changed

Lines changed: 14 additions & 2 deletions

File tree

utp_pred.thy

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,18 @@ end
161161

162162
unbundle utp_lattice_syntax
163163

164+
text \<open> The laws for applying functional infimum hamper proof automation. We therefore remove these
165+
laws from the simplifer, and instead add their definitional equations to the predicate laws. \<close>
166+
167+
declare Inf_apply [simp del]
168+
declare INF_apply [simp del]
169+
170+
declare Sup_apply [simp del]
171+
declare SUP_apply [simp del]
172+
173+
declare Inf_fun_def [pred]
174+
declare Sup_fun_def [pred]
175+
164176
subsection \<open> Substitution Laws \<close>
165177

166178
lemma subst_pred [usubst]:

utp_rel_laws.thy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -508,15 +508,15 @@ lemma ustar_rep_eq [rel]: "\<lbrakk>P\<^sup>\<star>\<rbrakk>\<^sub>U = \<lbrakk>
508508
proof
509509
have "((a, b) \<in> \<lbrakk>P\<rbrakk>\<^sub>U\<^sup>*) \<Longrightarrow> (a,b) \<in> \<lbrakk>P\<^sup>\<star>\<rbrakk>\<^sub>U" for a b
510510
apply (induct rule: rtrancl.induct)
511-
apply (simp_all add: pred_rel_def ustar_def)
511+
apply (simp_all add: pred_rel_def ustar_def Sup_apply)
512512
apply (metis (full_types) power.power.power_0 prod.simps(2) skip_def)
513513
apply (metis (mono_tags, lifting) case_prodI upred_semiring.power_Suc2 utp_rel.seq_def)
514514
done
515515
then show "\<lbrakk>P\<rbrakk>\<^sub>U\<^sup>* \<subseteq> \<lbrakk>P\<^sup>\<star>\<rbrakk>\<^sub>U"
516516
by auto
517517
next
518518
have "((a, b) \<in> \<lbrakk>P\<^sup>\<star>\<rbrakk>\<^sub>U) \<Longrightarrow> (a,b) \<in> \<lbrakk>P\<rbrakk>\<^sub>U\<^sup>*" for a b
519-
apply (simp add: ustar_def pred_rel_def)
519+
apply (simp add: ustar_def pred_rel_def Sup_apply)
520520
apply (metis mem_Collect_eq pred_rel_def rtrancl_power upower_interp)
521521
done
522522
then show "\<lbrakk>P\<^sup>\<star>\<rbrakk>\<^sub>U \<subseteq> \<lbrakk>P\<rbrakk>\<^sub>U\<^sup>*"

0 commit comments

Comments
 (0)