]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/lib/turing/universal/universal.ma
- we enabled a notation for ex2
[helm.git] / matita / matita / lib / turing / universal / universal.ma
index 3ed3015bec83c38932ce359c20faa37218c31815..20e35ca3ffb18096222d7459d362d75206d7be34 100644 (file)
@@ -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)).