]> matita.cs.unibo.it Git - helm.git/blob - matita/matita/contribs/lambda_delta/Basic_2/computation/acp_aaa.ma
- support for candidates of reducibility continues ...
[helm.git] / matita / matita / contribs / lambda_delta / Basic_2 / computation / acp_aaa.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/static/aaa.ma".
16 include "Basic_2/computation/lsubc.ma".
17
18 (* ABSTRACT COMPUTATION PROPERTIES ******************************************)
19
20 (* Main propertis ***********************************************************)
21
22 axiom aacr_aaa_csubc: ∀RR,RS,RP. acp RR RS RP → acr RR RS RP (λL,T. RP L T) →
23                         ∀L1,T,A. L1 ⊢ T ÷ A →
24                         ∀L2. L2 [RP] ⊑ L1 → {L2, T} [RP] ϵ 〚A〛.
25 (*
26 #RR #RS #RP #H1RP #H2RP #L1 #T #A #H elim H -L1 -T -A
27 [ #L #k #L2 #HL2
28   lapply (aacr_acr … H1RP H2RP 𝕒) #HAtom
29   @(s2 … HAtom … ◊) // /2 width=2/
30 | * #L #K #V #B #i #HLK #_ #IHB #L2 #HL2
31   [
32   | lapply (aacr_acr … H1RP H2RP B) #HB
33     @(s2 … HB … ◊) //
34     @(cp2 … H1RP)
35 | #L #V #T #B #A #_ #_ #IHB #IHA #L2 #HL2
36   lapply (aacr_acr … H1RP H2RP A) #HA
37   lapply (aacr_acr … H1RP H2RP B) #HB
38   lapply (s1 … HB) -HB #HB
39   @(s5 … HA … ◊ ◊) // /3 width=1/
40 | #L #W #T #B #A #_ #_ #IHB #IHA #L2 #HL2
41   lapply (aacr_acr … H1RP H2RP B) #HB
42   lapply (s1 … HB) -HB #HB
43   @(aacr_abst  … H1RP H2RP) /3 width=1/ -HB /4 width=3/
44 | /3 width=1/
45 | #L #V #T #A #_ #_ #IH1A #IH2A #L2 #HL2
46   lapply (aacr_acr … H1RP H2RP A) #HA
47   lapply (s1 … HA) #H
48   @(s6 … HA … ◊) /2 width=1/ /3 width=1/
49 ]
50 *)
51 lemma acp_aaa: ∀RR,RS,RP. acp RR RS RP → acr RR RS RP (λL,T. RP L T) →
52                ∀L,T,A. L ⊢ T ÷ A → RP L T.
53 #RR #RS #RP #H1RP #H2RP #L #T #A #HT
54 lapply (aacr_acr … H1RP H2RP A) #HA
55 @(s1 … HA) /2 width=4/
56 qed.