\import Algebra.Ordered \import Arith.Nat \import Function.Meta \import Order.StrictOrder \import Paths.Meta \func fac (n : Nat) : Nat | 0 => 1 | suc n => suc n Nat.* fac n \lemma fac>0 {n : Nat} : 0 < fac n \elim n | 0 => NatSemiring.zero<suc | suc n => rewrite NatSemiring.*-comm $ LinearlyOrderedAbMonoid.<=_+-left zero<=_ fac>0