(**************************************************************************) (* ___ *) (* ||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/unfold/frsups.ma". include "basic_2/static/ssta.ma". (* STRATIFIED STATIC TYPE ASSIGNMENT ON TERMS *******************************) (* Advanced inversion lemmas ************************************************) lemma ssta_inv_frsupp: ∀h,g,L,T,U,l. ⦃h, L⦄ ⊢ T •[g] ⦃l, U⦄ → ⦃L, U⦄ ⧁+ ⦃L, T⦄ → ⊥. #h #g #L #T #U #l #H elim H -L -T -U -l [ #L #k #l #_ #H elim (frsupp_inv_atom1_frsups … H) | #L #K #V #W #U #i #l #_ #_ #HWU #_ #H elim (lift_frsupp_trans … (⋆) … H … HWU) -U #X #H elim (lift_inv_lref2_be … H ? ?) -H // | #L #K #W #V #U #i #l #_ #_ #HWU #_ #H elim (lift_frsupp_trans … (⋆) … H … HWU) -U #X #H elim (lift_inv_lref2_be … H ? ?) -H // | #a #I #L #V #T #U #l #_ #IHTU #H elim (frsupp_inv_bind1_frsups … H) -H #H [2: /4 width=4/ ] -IHTU lapply (frsups_fwd_fw … H) -H normalize