]> matita.cs.unibo.it Git - helm.git/blob - matita/matita/contribs/lambda_delta/Basic_2/reducibility/apr_cr.ma
support for candidates of reducibility started ...
[helm.git] / matita / matita / contribs / lambda_delta / Basic_2 / reducibility / apr_cr.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/grammar/term_simple.ma".
16
17 (* CANDIDATES OF REDUCIBILITY ***********************************************)
18
19 (* abstract conditions for candidates *)
20
21 definition CR1: predicate term → predicate term → Prop ≝
22                 λRD,RC. ∀T. RC T → RD T.
23
24 definition CR2: relation term → predicate term → Prop ≝
25                 λRR,RC. ∀T1,T2. RC T1 → 𝕊[T1] → RR T1 T2 → RC T2.
26
27 definition CR3: relation term → predicate term → Prop ≝
28                 λRR,RC. ∀T1. (∀T2. RR T1 T2 → RC T2) → 𝕊[T1] → RC T1.
29
30 (* a candidate *)
31 record cr (RR:relation term) (RD:predicate term): Type[0] ≝ {
32    in_cr: predicate term;
33    cr1: CR1 RD in_cr;
34    cr2: CR2 RR in_cr;
35    cr3: CR3 RR in_cr
36 }.
37
38 interpretation
39    "context-free parallel reduction (term)"
40    'InSubset T R = (in_cr ? ? R T).
41
42 definition in_fun_cr: ∀RR,RD. ∀D,C:(cr RR RD). predicate term ≝
43                       λRR,RD,D,C,T. ∀V. V ϵ D → 𝕔{Appl}V.T ϵ C.