]> matita.cs.unibo.it Git - helm.git/blob - matita/matita/contribs/lambdadelta/basic_1/C/defs.ma
components C r flt app lift
[helm.git] / matita / matita / contribs / lambdadelta / basic_1 / C / defs.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 (* This file was automatically generated: do not edit *********************)
16
17 include "basic_1/T/defs.ma".
18
19 inductive C: Type[0] \def
20 | CSort: nat \to C
21 | CHead: C \to (K \to (T \to C)).
22
23 let rec cweight (c: C) on c: nat \def match c with [(CSort _) \Rightarrow O | 
24 (CHead c0 _ t) \Rightarrow (let TMP_1 \def (cweight c0) in (let TMP_2 \def 
25 (tweight t) in (plus TMP_1 TMP_2)))].
26
27 definition clt:
28  C \to (C \to Prop)
29 \def
30  \lambda (c1: C).(\lambda (c2: C).(let TMP_1 \def (cweight c1) in (let TMP_2 
31 \def (cweight c2) in (lt TMP_1 TMP_2)))).
32
33 definition cle:
34  C \to (C \to Prop)
35 \def
36  \lambda (c1: C).(\lambda (c2: C).(let TMP_1 \def (cweight c1) in (let TMP_2 
37 \def (cweight c2) in (le TMP_1 TMP_2)))).
38
39 let rec CTail (k: K) (t: T) (c: C) on c: C \def match c with [(CSort n) 
40 \Rightarrow (let TMP_2 \def (CSort n) in (CHead TMP_2 k t)) | (CHead d h u) 
41 \Rightarrow (let TMP_1 \def (CTail k t d) in (CHead TMP_1 h u))].
42