kernel-Nat.fib_add_two_strictmono
- Kind
- kernel-term
- Status
- checked
Supports: StrictMono (fun n => Nat.fib (n + 2))
test "$(cargo run -q -p axeyum-lean-kernel --release --example nat_theorem_inventory -- fib_add_two_strictmono 2>/dev/null | grep -xFc 'Nat.fib_add_two_strictmono 3 ((x0 : AxNat) -> ((x1 : AxNat) -> ((x2 : AxNat.lt x0 x1) -> AxNat.lt (AxNat.fib (AxNat.succ (AxNat.succ x0))) (AxNat.fib (AxNat.succ (AxNat.succ x1))))))')" -ge 1 Evidence notes
The kernel re-infers the theorem type from the constructed term. `n + 2` is rendered `succ (succ n)` (defeq, and the concrete instantiation this prelude builds), matching Mathlib's `fun n => fib (n+2)` unfolded to `forall a b, a < b -> fib (a+2) < fib (b+2)`. Proved by induction mirroring perfect.rs's pow_lt_pow_of_lt, using an unconditional adjacent-step lemma (fib_add_two_lt_succ, private, from fib_add_two + fib_pos_of_pos) in place of pow's base-positivity-gated step.