{-# OPTIONS --allow-unsolved-metas #-}
module Verona2024.DoubleNegation.StableAxioms where
open import Verona2024.Basics.Common hiding (ℕ; zero; succ)
postulate
ℕ : Set
zero : ℕ
succ : ℕ → ℕ
_+_ : ℕ → ℕ → ℕ
_·_ : ℕ → ℕ → ℕ
add-zero : (x : ℕ) → (x + zero) ≡ x
add-succ : (x y : ℕ) → (x + succ y) ≡ succ (x + y)
mult-zero : (x : ℕ) → (x · zero) ≡ zero
mult-succ : (x y : ℕ) → (x · succ y) ≡ ((x · y) + y)
succ-not-zero : (x : ℕ) → ¬ (succ x ≡ zero)
succ-injective : (x y : ℕ) → succ x ≡ succ y → x ≡ y
zero-or-succ : (x : ℕ) → x ≡ zero ∨ Σ[ y ∈ ℕ ] x ≡ succ y
induction : (P : ℕ → Set) → P zero → ((n : ℕ) → P n → P (succ n)) → ((n : ℕ) → P n)
return : {X : Set} → X → ¬ ¬ X
return x = λ k → k x
add-zero' : (x : ℕ) → ¬ ¬ ((x + zero) ≡ x)
add-zero' x = return (add-zero x)