1 (**************************************************************************)
4 (* ||A|| A project by Andrea Asperti *)
6 (* ||I|| Developers: *)
7 (* ||T|| The HELM team. *)
8 (* ||A|| http://helm.cs.unibo.it *)
10 (* \ / This file is distributed under the terms of the *)
11 (* v GNU General Public License Version 2 *)
13 (**************************************************************************)
15 include "Basic_2/static/aaa.ma".
16 include "Basic_2/computation/lsubc.ma".
18 (* ABSTRACT COMPUTATION PROPERTIES ******************************************)
20 (* Main propertis ***********************************************************)
22 axiom aacr_aaa_csubc: ∀RR,RS,RP. acp RR RS RP → acr RR RS RP (λL,T. RP L T) →
24 ∀L2. L2 [RP] ⊑ L1 → {L2, T} [RP] ϵ 〚A〛.
26 #RR #RS #RP #H1RP #H2RP #L1 #T #A #H elim H -L1 -T -A
28 lapply (aacr_acr … H1RP H2RP 𝕒) #HAtom
29 @(s2 … HAtom … ◊) // /2 width=2/
30 | * #L #K #V #B #i #HLK #_ #IHB #L2 #HL2
32 | lapply (aacr_acr … H1RP H2RP B) #HB
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/
45 | #L #V #T #A #_ #_ #IH1A #IH2A #L2 #HL2
46 lapply (aacr_acr … H1RP H2RP A) #HA
48 @(s6 … HA … ◊) /2 width=1/ /3 width=1/
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/