proposition: Lemma test_group_up_list1_rev: forall x y:nat, ((fun f => x = y) true) -> forall a b: bool, forall z:nat, 0 <= 1 -> (0%Z <= 1%Z)%Z -> x <= y -> x = y -> (0 < 1 -> 1<0) -> 0 < z -> True.
proof: Proof. intros ; {!< group_up_list }. lazymatch reverse goal with | Hb:_, Ha:_,Hz : _ , Hy:_ , Hx:_ |- True => let t := constr:((ltac:(reflexivity)): Hb=b) in let t := constr:((ltac:(reflexivity)): Ha=a) in let t := constr:((ltac:(reflexivity)): Hz=z) in let t := constr:((ltac:(reflexivity)): Hy=y) in let t := constr:((ltac:(reflexivity)): Hx=x) in idtac | _ => fail "test failed (wrong order of hypothesis)!" end. lazymatch goal with | hH1:_, hH2:_,hH3 : _ , hH4:_ , hH5:_ |- True => let t := constr:((ltac:(reflexivity)):H1=hH1) in let t := constr:((ltac:(reflexivity)): H2=hH2) in let t := constr:((ltac:(reflexivity)): H3=hH3) in let t := constr:((ltac:(reflexivity)): H4=hH4) in let t := constr:((ltac:(reflexivity)): H5=hH5) in idtac | _ => fail "test failed (wrong order of hypothesis)!" end. exact I. Qed.
imports: Arith ZArith LibHyps.LibHyps List