]> matita.cs.unibo.it Git - helm.git/blob - matita/matita/contribs/lambdadelta/apps_2/models/tm_props.ma
260d2415aba20c8f56688c92f045c1a3ba02808d
[helm.git] / matita / matita / contribs / lambdadelta / apps_2 / models / tm_props.ma
1 (**************************************************************************)
2 (*       ___                                                              *)
3 (*      ||M||                                                             *)
4 (*      ||A||       A project by Andrea Asperti                           *)
5 (*      ||T||                                                             *)
6 (*      ||I||       Developers:                                           *)
7 (*      ||T||         The HELM team.                                      *)
8 (*      ||A||         http://helm.cs.unibo.it                             *)
9 (*      \   /                                                             *)
10 (*       \ /        This file is distributed under the terms of the       *)
11 (*        v         GNU General Public License Version 2                  *)
12 (*                                                                        *)
13 (**************************************************************************)
14
15 include "basic_2/rt_equivalence/cpcs_cpcs.ma".
16 include "apps_2/models/model_props.ma".
17 include "apps_2/models/tm.ma".
18
19 (* TERM MODEL ***************************************************************)
20
21 lemma tm_md (h): ∀T,V,gv,lv. ⟦+ⓓV.T⟧[gv,lv] ≗{TM h} ⟦T⟧[gv,⫯[O←⟦V⟧[gv,lv]]lv].
22 #h #T elim T *
23 [ /4 width=3 by cpc_cpcs, cpm_zeta, or_introl/
24 | #i #V #gv #lv
25   elim (eq_or_gt i) #Hi destruct
26   [ elim (lifts_total (⟦V⟧[gv,lv]) (𝐔❴1❵)) #W #HVW
27     >tm_ti_lref >vpush_eq
28     >tm_ti_bind >tm_ti_lref >tm_vpush_eq
29     /5 width=3 by cpc_cpcs, cpm_zeta, cpm_delta, or_introl/
30   | >tm_ti_lref >vpush_gt //
31     >tm_ti_bind >tm_ti_lref >tm_vpush_gt //
32     /4 width=3 by cpc_cpcs, cpm_zeta, or_introl/
33   ]
34 | #l #V #gv #lv
35   >tm_ti_bind >tm_ti_gref >tm_ti_gref
36   /4 width=3 by cpc_cpcs, cpm_zeta, or_introl/
37 | #p #I #W #T #IHW #IHT #V #gv #lv
38   >tm_ti_bind in ⊢ (???%);
39 (*
40   
41   >tm_ti_bind >tm_ti_bind
42   @cpc_cpcs @or_introl
43   @cpm_bind 
44   
45   /4 width=3 by cpc_cpcs, cpm_zeta, or_introl/
46
47 definition is_tm (h): is_model (TM h) ≝ mk_is_model …. //
48
49 |
50 | #gv #lv #p #V #T
51   @cpcs_cprs_dx
52   @cprs_step_sn
53   [2: @cpm_bind // | skip ]  
54 *)