constructor
p : Nat → Bool
x : Nat
⊢ (first p).leNat x = true ↔ ∃ y, y ≤ x ∧ p y = true
case mp
p : Nat → Bool
x : Nat
⊢ (first p).leNat x = true → ∃ y, y ≤ x ∧ p y = true

case mpr
p : Nat → Bool
x : Nat
⊢ (∃ y, y ≤ x ∧ p y = true) → (first p).leNat x = true