X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fsyntax%2Fitem.ma;fp=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fsyntax%2Fitem.ma;h=0000000000000000000000000000000000000000;hb=ff612dc35167ec0c145864c9aa8ae5e1ebe20a48;hp=ba835726083cffd28703c0937053c39f1e6d5d1f;hpb=222044da28742b24584549ba86b1805a87def070;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/syntax/item.ma b/matita/matita/contribs/lambdadelta/basic_2/syntax/item.ma deleted file mode 100644 index ba8357260..000000000 --- a/matita/matita/contribs/lambdadelta/basic_2/syntax/item.ma +++ /dev/null @@ -1,97 +0,0 @@ -(**************************************************************************) -(* ___ *) -(* ||M|| *) -(* ||A|| A project by Andrea Asperti *) -(* ||T|| *) -(* ||I|| Developers: *) -(* ||T|| The HELM team. *) -(* ||A|| http://helm.cs.unibo.it *) -(* \ / *) -(* \ / This file is distributed under the terms of the *) -(* v GNU General Public License Version 2 *) -(* *) -(**************************************************************************) - -include "ground_2/lib/bool.ma". -include "ground_2/lib/arith.ma". - -(* ITEMS ********************************************************************) - -(* atomic items *) -inductive item0: Type[0] ≝ - | Sort: nat → item0 (* sort: starting at 0 *) - | LRef: nat → item0 (* reference by index: starting at 0 *) - | GRef: nat → item0 (* reference by position: starting at 0 *) -. - -(* unary binding items *) -inductive bind1: Type[0] ≝ - | Void: bind1 (* exclusion *) -. - -(* binary binding items *) -inductive bind2: Type[0] ≝ - | Abbr: bind2 (* abbreviation *) - | Abst: bind2 (* abstraction *) -. - -(* binary non-binding items *) -inductive flat2: Type[0] ≝ - | Appl: flat2 (* application *) - | Cast: flat2 (* explicit type annotation *) -. - -(* binary items *) -inductive item2: Type[0] ≝ - | Bind2: bool → bind2 → item2 (* polarized binding item *) - | Flat2: flat2 → item2 (* non-binding item *) -. - -(* Basic inversion lemmas ***************************************************) - -fact destruct_sort_sort_aux: ∀s1,s2. Sort s1 = Sort s2 → s1 = s2. -#s1 #s2 #H destruct // -qed-. - -(* Basic properties *********************************************************) - -lemma eq_item0_dec: ∀I1,I2:item0. Decidable (I1 = I2). -* #i1 * #i2 [2,3,4,6,7,8: @or_intror #H destruct ] -[2: elim (eq_nat_dec i1 i2) |1,3: elim (eq_nat_dec i1 i2) ] /2 width=1 by or_introl/ -#Hni12 @or_intror #H destruct /2 width=1 by/ -qed-. - -lemma eq_bind1_dec: ∀I1,I2:bind1. Decidable (I1 = I2). -* * /2 width=1 by or_introl/ -qed-. - -(* Basic_1: was: bind_dec *) -lemma eq_bind2_dec: ∀I1,I2:bind2. Decidable (I1 = I2). -* * /2 width=1 by or_introl/ -@or_intror #H destruct -qed-. - -(* Basic_1: was: flat_dec *) -lemma eq_flat2_dec: ∀I1,I2:flat2. Decidable (I1 = I2). -* * /2 width=1 by or_introl/ -@or_intror #H destruct -qed-. - -(* Basic_1: was: kind_dec *) -lemma eq_item2_dec: ∀I1,I2:item2. Decidable (I1 = I2). -* [ #p1 ] #I1 * [1,3: #p2 ] #I2 -[2,3: @or_intror #H destruct -| elim (eq_bool_dec p1 p2) #Hp - [ elim (eq_bind2_dec I1 I2) /2 width=1 by or_introl/ #HI ] - @or_intror #H destruct /2 width=1 by/ -| elim (eq_flat2_dec I1 I2) /2 width=1 by or_introl/ #HI - @or_intror #H destruct /2 width=1 by/ -] -qed-. - -(* Basic_1: removed theorems 21: - s_S s_plus s_plus_sym s_minus minus_s_s s_le s_lt s_inj s_inc - s_arith0 s_arith1 - r_S r_plus r_plus_sym r_minus r_dis s_r r_arith0 r_arith1 - not_abbr_abst bind_dec_not -*)