20 lines
605 B
Text
20 lines
605 B
Text
def some_lets : ℕ → ℕ → ℕ
|
||
| 0 v := v
|
||
| (nat.succ n) v := let k := some_lets n v + some_lets n v in some_lets n k
|
||
|
||
def some_unfolded_lets (n : ℕ) : Σ' v : ℕ , v = some_lets 5 n :=
|
||
begin
|
||
econstructor; dunfold some_lets; econstructor
|
||
end
|
||
|
||
meta def foo : tactic unit :=
|
||
do [g] <- tactic.get_goals,
|
||
tactic.to_expr (``(1)) >>= tactic.unify g
|
||
def some_lifted_lets (n : ℕ) : Σ' (v : ℕ), v = psigma.fst (some_unfolded_lets n) :=
|
||
begin
|
||
econstructor; dunfold some_unfolded_lets psigma.fst; symmetry; transitivity; symmetry;
|
||
{
|
||
foo -- unify_reify_rhs_to_let_in
|
||
}
|
||
|
||
end
|