]> matita.cs.unibo.it Git - helm.git/blob - matita/matita/contribs/limits/u0_predicates.ma
limits: we set up a different foundation
[helm.git] / matita / matita / contribs / limits / u0_predicates.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 "preamble.ma".
16
17 (* RELATIONS **********************************************************)
18
19 definition u0_predicate1: Type[0] → Type[1] ≝ λT.T → Prop.
20
21 definition u0_predicate2: Type[0] → Type[1] ≝ λT.T → u0_predicate1 T.
22
23 definition u1_predicate1: Type[1] → Type[2] ≝ λT.T → Prop.
24
25 definition u0_quantifier: Type[0] → Type[2] ≝ λT. u1_predicate1 (u0_predicate1 T).
26
27 record is_u0_reflexive (T:Type[0]) (All:u0_quantifier T) (R:u0_predicate2 T): Prop ≝
28 {
29    u0_refl: All (λa. R a a)
30 }.
31
32 record can_u0_replace1 (T:Type[0]) (All:u0_quantifier T) (Q:u0_predicate2 T) (R:u0_predicate1 T): Prop ≝
33 {
34    u0_repl1: All (λa. R a → All (λb. Q b a → R b))
35 }.
36 (*
37 record can_u0_replac2 (T:Type[0]) (All:u0_quantifier T) (Q:u0_predicate2 T) (R:u0_predicate2 T): Prop ≝
38 {
39    u0_reflexivity: All (λa. R a a)
40 }.
41 *)