X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Flib%2Fturing%2Funiversal%2Funiversal.ma;h=20e35ca3ffb18096222d7459d362d75206d7be34;hb=39aab7babf51252cecb81a66af82fe797e8dcbe7;hp=3ed3015bec83c38932ce359c20faa37218c31815;hpb=31cb2f0b374657eb5acb95708443e2c1b8481891;p=helm.git diff --git a/matita/matita/lib/turing/universal/universal.ma b/matita/matita/lib/turing/universal/universal.ma index 3ed3015be..20e35ca3f 100644 --- a/matita/matita/lib/turing/universal/universal.ma +++ b/matita/matita/lib/turing/universal/universal.ma @@ -337,14 +337,17 @@ definition low_R ≝ λM,qstart,R,t1,t2. lemma sem_uni_step1: uni_step ⊨ [us_acc: low_step_R_true, low_step_R_false]. +@daemon (* this no longer works: TODO *) (* @(acc_Realize_to_acc_Realize … sem_uni_step) [@unistep_true_to_low_step | @unistep_false_to_low_step ] +*) qed. definition universalTM ≝ whileTM ? uni_step us_acc. theorem sem_universal: ∀M:normalTM. ∀qstart. - WRealize ? universalTM (low_R M qstart (R_TM FinBool M qstart)). + universalTM ⊫ (low_R M qstart (R_TM FinBool M qstart)). +@daemon (* this no longer works: TODO *) (* #M #q #intape #i #outc #Hloop lapply (sem_while … sem_uni_step1 intape i outc Hloop) [@daemon] -Hloop @@ -371,7 +374,7 @@ lapply (sem_while … sem_uni_step1 intape i outc Hloop) [% [cases HRTM #k * #outc1 * #Hloop #Houtc1 @(ex_intro … (S k)) @(ex_intro … outc1) % - [>loop_S_false [2://] whd in match (step FinBool ??); + [>loopM_unfold >loop_S_false [2://] whd in match (step FinBool ??); >(eq_pair_fst_snd ?? (trans ???)) @Hloop |@Houtc1 ] @@ -379,13 +382,17 @@ lapply (sem_while … sem_uni_step1 intape i outc Hloop) |@Houtc ] ] +*) qed. theorem sem_universal2: ∀M:normalTM. ∀R. - WRealize ? M R → WRealize ? universalTM (low_R M (start ? M) R). + M ⊫ R → universalTM ⊫ (low_R M (start ? M) R). #M #R #HMR lapply (sem_universal … M (start ? M)) @WRealize_to_WRealize #t1 #t2 whd in ⊢ (%→%); #H #tape1 #Htape1 cases (H ? Htape1) #q * #tape2 * * #HRTM #Hhalt #Ht2 @(ex_intro … q) @(ex_intro … tape2) % [% [@(R_TM_to_R … HRTM) @HMR | //] | //] qed. +axiom terminate_UTM: ∀M:normalTM.∀t. + M ↓ t → universalTM ↓ (low_config M (mk_config ?? (start ? M) t)). +