fact: Fixpoint exp (a b : T1) {struct b}:T1 := match a,b with | x, zero => cons zero 0 zero | cons zero 0 _ , _ => cons zero 0 zero | zero, y => zero | x , cons zero n' _ => exp_F x (S n') | cons zero n _, cons (cons zero 0 zero) n' b' => ((cons (cons zero n' zero) 0 zero) * ((cons zero n zero) ^ b')) | cons zero n _, cons a' n' b' => (omega_term (omega_term (a' - (F 1)) n') 0) * ((cons zero n zero) ^ b') | cons a n b, cons a' n' b' => ((omega_term (a * (cons a' n' zero)) 0) * ((cons a n b) ^ b')) end where "a ^ b" := (exp a b) : cantor_scope.
imports: Arith Omega Compare_dec Relations Wellfounded Tools More_nat Wf_nat AccP not_decreasing ArithRing term rpo List