blob: 714df5ccaecb1a6156c70a3b06391140c050bd5a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
Ltac ret_and_left f :=
let tac := ret_and_left in
let T := type of f in
lazymatch eval hnf in T with
| ?T' -> _ =>
let ret := constr:(fun x' : T' => $(tac (f x'))$) in
exact ret
| ?T' => exact f
end.
Goal forall A B : Prop, forall x y : A, True.
Proof.
intros A B x y.
pose (f := fun (x y : A) => conj x y).
pose (a := $(ret_and_left f)$).
unify (a x y) (conj x y).
Abort.
|