-- Agda program using the Iowa Agda library open import bool module TO-PROVE-evendoublecoin (Choice : Set) (choose : Choice → 𝔹) (lchoice : Choice → Choice) (rchoice : Choice → Choice) where open import eq open import nat open import list open import maybe --------------------------------------------------------------------------- -- Translated Curry operations: add : ℕ → ℕ → ℕ add zero x = x add (suc y) z = suc (add y z) coin : Choice → ℕ → ℕ coin c1 x = if choose c1 then x else suc x double : ℕ → ℕ double x = add x x even : ℕ → 𝔹 even zero = tt even (suc zero) = ff even (suc (suc x)) = even x --------------------------------------------------------------------------- evendoublecoin : (c1 : Choice) → (x : ℕ) → (even (double (coin c1 x))) ≡ tt evendoublecoin c1 x = ? ---------------------------------------------------------------------------