kernel-Nat.fib_strictmonoOn
- Kind
- kernel-term
- Status
- checked
Supports: StrictMonoOn Nat.fib (Set.Ici 2)
test "$(cargo run -q -p axeyum-lean-kernel --release --example nat_theorem_inventory -- fib_strictmonoOn 2>/dev/null | grep -xFc 'Nat.fib_strictmonoOn 5 ((x0 : AxNat) -> ((x1 : AxNat) -> ((x2 : AxNat.le (AxNat.succ (AxNat.succ AxNat.zero)) x0) -> ((x3 : AxNat.le (AxNat.succ (AxNat.succ AxNat.zero)) x1) -> ((x4 : AxNat.lt x0 x1) -> AxNat.lt (AxNat.fib x0) (AxNat.fib x1))))))')" -ge 1 Evidence notes
The kernel re-infers the theorem type from the constructed term. `Set.Ici 2` is unwound to two explicit `Le 2` hypotheses (`succ (succ zero)` for the literal `2`), matching Mathlib's `StrictMonoOn Nat.fib (Set.Ici 2)` unfolded to `forall a b, 2 <= a -> 2 <= b -> a < b -> fib a < fib b`. Proved from fib_add_two_strictmono by peeling two succs off each bound (two applications of pos_implies_succ_pred per side) and transporting back.