X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fsyntax%2Fbind.ma;fp=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fsyntax%2Fbind.ma;h=ca474406d499dc2650ecdcab1aa3fc83da92e092;hb=73966e3e9fd17155ca67e6b4a32f52225cea9d3c;hp=0000000000000000000000000000000000000000;hpb=7632da8aa4f6751e351546be3d90fb23f634108c;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/syntax/bind.ma b/matita/matita/contribs/lambdadelta/basic_2/syntax/bind.ma new file mode 100644 index 000000000..ca474406d --- /dev/null +++ b/matita/matita/contribs/lambdadelta/basic_2/syntax/bind.ma @@ -0,0 +1,36 @@ +(**************************************************************************) +(* ___ *) +(* ||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 "basic_2/syntax/term.ma". + +(* BINDERS FOR LOCAL ENVIRONMENTS ******************************************) + +inductive bind: Type[0] ≝ +| BUnit: bind1 → bind +| BPair: bind2 → term → bind +. + +(* Basic properties ********************************************************) + +lemma eq_bind_dec: ∀I1,I2:bind. Decidable (I1 = I2). +* #I1 [2: #V1 ] * #I2 [2,4: #V2 ] +[ elim (eq_bind2_dec I1 I2) #HI + [ elim (eq_term_dec V1 V2) #HV /2 width=1 by or_introl/ ] + @or_intror #H destruct /2 width=1 by/ +| @or_intror #H destruct +| @or_intror #H destruct +| elim (eq_bind1_dec I1 I2) #HI /2 width=1 by or_introl/ + @or_intror #H destruct /2 width=1 by/ +] +qed-.