diff -r 0c18df79b1c8 -r a642599ffdea src/ZF/UNITY/ClientImpl.thy --- a/src/ZF/UNITY/ClientImpl.thy Tue Sep 27 17:03:23 2022 +0100 +++ b/src/ZF/UNITY/ClientImpl.thy Tue Sep 27 17:46:52 2022 +0100 @@ -26,7 +26,7 @@ definition (** Release some client_tokens **) "client_rel_act \ - { \ state*state. + {\s,t\ \ state*state. \nrel \ nat. nrel = length(s`rel) \ t = s(rel:=(s`rel)@[nth(nrel, s`giv)]) \ nrel < length(s`giv) \ @@ -36,11 +36,11 @@ (** Including t=s suppresses fairness, allowing the non-trivial part of the action to be ignored **) definition - "client_tok_act \ { \ state*state. t=s | + "client_tok_act \ {\s,t\ \ state*state. t=s | t = s(tok:=succ(s`tok mod NbT))}" definition - "client_ask_act \ { \ state*state. t=s | (t=s(ask:=s`ask@[s`tok]))}" + "client_ask_act \ {\s,t\ \ state*state. t=s | (t=s(ask:=s`ask@[s`tok]))}" definition "client_prog \ @@ -178,15 +178,15 @@ by (force intro!: AlwaysI client_prog_Join_Stable_rel_le_giv) lemma def_act_eq: - "A \ { \ state*state. P(s, t)} \ A={ \ state*state. P(s, t)}" + "A \ {\s, t\ \ state*state. P(s, t)} \ A={\s, t\ \ state*state. P(s, t)}" by auto -lemma act_subset: "A={ \ state*state. P(s, t)} \ A<=state*state" +lemma act_subset: "A={\s,t\ \ state*state. P(s, t)} \ A<=state*state" by auto lemma transient_lemma: "client_prog \ - transient({s \ state. s`rel = k \ \ strict_prefix(nat) + transient({s \ state. s`rel = k \ \k, h\ \ strict_prefix(nat) \ \ prefix(nat) \ h pfixGe s`ask})" apply (rule_tac act = client_rel_act in transientI) apply (simp (no_asm) add: client_prog_def [THEN def_prg_Acts]) @@ -209,7 +209,7 @@ done lemma strict_prefix_is_prefix: - " \ strict_prefix(A) \ \ prefix(A) \ xs\ys" + "\xs, ys\ \ strict_prefix(A) \ \xs, ys\ \ prefix(A) \ xs\ys" apply (unfold strict_prefix_def id_def lam_def) apply (auto dest: prefix_type [THEN subsetD]) done @@ -217,7 +217,7 @@ lemma induct_lemma: "\client_prog \ G \ Incr(lift(giv)); client_prog ok G; G \ program\ \ client_prog \ G \ - {s \ state. s`rel = k \ \ strict_prefix(nat) + {s \ state. s`rel = k \ \k,h\ \ strict_prefix(nat) \ \ prefix(nat) \ h pfixGe s`ask} \w {s \ state. \ strict_prefix(nat) \ \ prefix(nat) \