diff -r ef362328b931 -r 12990a6dddcb src/HOL/Nominal/Examples/CK_Machine.thy --- a/src/HOL/Nominal/Examples/CK_Machine.thy Tue Oct 08 13:13:53 2024 +0200 +++ b/src/HOL/Nominal/Examples/CK_Machine.thy Tue Oct 08 15:02:17 2024 +0200 @@ -152,43 +152,43 @@ equivariance val inductive - machine :: "lam\ctx list\lam\ctx list\bool" (\<_,_> \ <_,_>\) + machine :: "lam\ctx list\lam\ctx list\bool" (\<_,_> \ <_,_>\) where - m1[intro]: " \ e2)#Es>" -| m2[intro]: "val v \ e2)#Es> \ )#Es>" -| m3[intro]: "val v \ )#Es> \ " -| m4[intro]: " \ e2)#Es>" -| m5[intro]: " e2)#Es> \ )#Es>" -| m6[intro]: ")#Es> \ " -| m4'[intro]:" \ e2)#Es>" -| m5'[intro]:" e2)#Es> \ )#Es>" -| m6'[intro]:")#Es> \ " -| m7[intro]: " \ e2 e3)#Es>" -| m8[intro]: " e1 e2)#Es> \ " -| m9[intro]: " e1 e2)#Es> \ " -| mA[intro]: " \ " -| mB[intro]: " \ )#Es>" -| mC[intro]: ")#Es> \ " -| mD[intro]: "0 < n \ )#Es> \ " -| mE[intro]: " \ e2)#Es>" -| mF[intro]: " e2)#Es> \ )#Es>" -| mG[intro]: ")#Es> \ " -| mH[intro]: "n1\n2 \ )#Es> \ " + m1[intro]: " \ e2)#Es>" +| m2[intro]: "val v \ e2)#Es> \ )#Es>" +| m3[intro]: "val v \ )#Es> \ " +| m4[intro]: " \ e2)#Es>" +| m5[intro]: " e2)#Es> \ )#Es>" +| m6[intro]: ")#Es> \ " +| m4'[intro]:" \ e2)#Es>" +| m5'[intro]:" e2)#Es> \ )#Es>" +| m6'[intro]:")#Es> \ " +| m7[intro]: " \ e2 e3)#Es>" +| m8[intro]: " e1 e2)#Es> \ " +| m9[intro]: " e1 e2)#Es> \ " +| mA[intro]: " \ " +| mB[intro]: " \ )#Es>" +| mC[intro]: ")#Es> \ " +| mD[intro]: "0 < n \ )#Es> \ " +| mE[intro]: " \ e2)#Es>" +| mF[intro]: " e2)#Es> \ )#Es>" +| mG[intro]: ")#Es> \ " +| mH[intro]: "n1\n2 \ )#Es> \ " inductive - "machine_star" :: "lam\ctx list\lam\ctx list\bool" (\<_,_> \* <_,_>\) + "machine_star" :: "lam\ctx list\lam\ctx list\bool" (\<_,_> \* <_,_>\) where - ms1[intro]: " \* " -| ms2[intro]: "\ \ ; \* \ \ \* " + ms1[intro]: " \* " +| ms2[intro]: "\ \ ; \* \ \ \* " lemma ms3[intro,trans]: - assumes a: " \* " " \* " - shows " \* " + assumes a: " \* " " \* " + shows " \* " using a by (induct) (auto) lemma ms4[intro]: - assumes a: " \ " - shows " \* " + assumes a: " \ " + shows " \* " using a by (rule ms2) (rule ms1) section \The Evaluation Relation (Big-Step Semantics)\ @@ -238,14 +238,14 @@ theorem eval_implies_machine_star_ctx: assumes a: "t \ t'" - shows " \* " + shows " \* " using a by (induct arbitrary: Es) (metis eval_to machine.intros ms1 ms2 ms3 ms4 v_LAM)+ corollary eval_implies_machine_star: assumes a: "t \ t'" - shows " \* " + shows " \* " using a by (auto dest: eval_implies_machine_star_ctx) section \The CBV Reduction Relation (Small-Step Semantics)\ @@ -313,18 +313,18 @@ using a by (induct E) (auto) lemma machine_implies_cbv_star_ctx: - assumes a: " \ " + assumes a: " \ " shows "(Es\)\e\ \cbv* (Es'\)\e'\" using a by (induct) (auto simp add: ctx_compose intro: cbv_in_ctx) lemma machine_star_implies_cbv_star_ctx: - assumes a: " \* " + assumes a: " \* " shows "(Es\)\e\ \cbv* (Es'\)\e'\" using a by (induct) (auto dest: machine_implies_cbv_star_ctx) lemma machine_star_implies_cbv_star: - assumes a: " \* " + assumes a: " \* " shows "e \cbv* e'" using a by (auto dest: machine_star_implies_cbv_star_ctx) @@ -350,7 +350,7 @@ text \The Soundness Property\ theorem machine_star_implies_eval: - assumes a: " \* " + assumes a: " \* " and b: "val t2" shows "t1 \ t2" proof - @@ -536,7 +536,7 @@ section \The Type-Preservation Property for the Machine and Evaluation Relation\ theorem machine_type_preservation: - assumes a: " \* " + assumes a: " \* " and b: "\ \ t : T" shows "\ \ t' : T" proof - @@ -549,7 +549,7 @@ and b: "\ \ t : T" shows "\ \ t' : T" proof - - from a have " \* " by (simp add: eval_implies_machine_star) + from a have " \* " by (simp add: eval_implies_machine_star) then show "\ \ t' : T" using b by (simp add: machine_type_preservation) qed