Let n be given.
We prove the intermediate
claim Happair:
(n,apply_fun f n) ∈ f.
Let x0 be given.
Assume Hx0_conj.
Apply Hx0_conj to the current goal.
Assume Hx0 Hexy0.
Apply Hexy0 to the current goal.
Let y0 be given.
Assume Hy0_conj.
Apply Hy0_conj to the current goal.
Assume Hy0 Heq.
We prove the intermediate
claim HeqT:
(n,apply_fun f n) = (x0,y0).
rewrite the current goal using
(tuple_pair x0 y0) (from right to left).
An exact proof term for the current goal is Heq.
We prove the intermediate
claim H0eq:
(n,apply_fun f n) 0 = (x0,y0) 0.
rewrite the current goal using HeqT (from left to right).
Use reflexivity.
We prove the intermediate
claim H1eq:
(n,apply_fun f n) 1 = (x0,y0) 1.
rewrite the current goal using HeqT (from left to right).
Use reflexivity.
We prove the intermediate
claim Hnx0:
n = x0.
rewrite the current goal using
(tuple_2_0_eq x0 y0) (from right to left).
An exact proof term for the current goal is H0eq.
We prove the intermediate
claim Happ:
apply_fun f n = y0.
rewrite the current goal using
(tuple_2_1_eq x0 y0) (from right to left).
An exact proof term for the current goal is H1eq.
We prove the intermediate
claim Hx0n:
x0 = n.
rewrite the current goal using Hnx0 (from left to right).
Use reflexivity.
rewrite the current goal using Happ (from left to right).
rewrite the current goal using Hy0eq (from left to right).
rewrite the current goal using Hx0n (from left to right).
Use reflexivity.
∎