X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Flib%2Fturing%2Finject.ma;fp=matita%2Fmatita%2Flib%2Fturing%2Finject.ma;h=be40c5638ce1ca95c233e4985ca8a906c3c29f8d;hb=aa0fefefb9a2911739877f20897e00e16f7d3fd7;hp=722f4fda98cffe44bbcd7b488edd0e69a66c00f4;hpb=bb1540582257352d1c692142ad79da4cf2e7fe97;p=helm.git diff --git a/matita/matita/lib/turing/inject.ma b/matita/matita/lib/turing/inject.ma index 722f4fda9..be40c5638 100644 --- a/matita/matita/lib/turing/inject.ma +++ b/matita/matita/lib/turing/inject.ma @@ -125,36 +125,11 @@ theorem sem_inject: ∀sig.∀M:TM sig.∀R.∀n,i. i≤n → M ⊨ R → inject_TM sig M n i ⊨ inject_R sig R n i. #sig #M #R #n #i #lein #HR #vt cases (HR (nth i ? vt (niltape ?))) #k * * #outs #outt * #Hloop #HRout @(ex_intro ?? k) -@(ex_intro ?? (mk_mconfig ?? n outs (change_vec ? (S n) vt outt i))) % - [elim k in Hloop; - [normalize in ⊢ (%\to ?); #H destruct - |#k0 #Hind whd in ⊢ (??%?→??%?); - >halt_inject whd in match (cstate ????); - whd in match (cstate sig (states sig M) - (initc sig M (nth i (tape sig) vt (niltape sig)))); - cases (true_or_false (halt sig M (start sig M))) #Hhalt >Hhalt - whd in ⊢ (??%?→??%?); - [#H @eq_f whd in ⊢ (??%?); lapply (de_option ??? H) -H - whd in ⊢ (??%?→?); #H @eq_f2 - [whd in ⊢ (??%?); destruct (H) // - |@(eq_vec … (niltape ?)) #j #lejn - cases (true_or_false (eqb i j)) #eqij - [>(eqb_true_to_eq … eqij) >nth_change_vec // - <(eqb_true_to_eq … eqij) destruct (H) // - |>nth_change_vec_neq // @(eqb_false_to_not_eq … eqij) - ] - ] - |#H loop_inject // *) - | nth_change_vec // @le_S_S // |#j #i >nth_change_vec_neq // ] ] - - - - - - - +qed. \ No newline at end of file