NaturalType a => IntegerType (Succ a) |
Negate (Succ a) (NegativeSucc a) |
Negate (NegativeSucc a) (Succ a) |
AddOne (NegativeSucc (Succ a)) (NegativeSucc a) |
IsAtLeast (Succ a) (NegativeSucc b) True |
IsAtLeast (NegativeSucc a) (Succ b) False |
(Add (NegativeSucc a) b ab, AddOne abm1 ab) => Add (NegativeSucc (Succ a)) b abm1 |
Absolute (Succ a) (Succ a) One |
Absolute (Succ a) (Succ a) One |
Absolute (NegativeSucc a) (Succ a) MinusOne |
Divide (Succ a) (Succ b) (Succ c) => Divide (NegativeSucc a) (Succ b) (NegativeSucc c) |
GCD (Succ a) Zero (Succ a) |
GCD (Succ a) Zero (Succ a) |
(Add b amb a, Absolute amb diff sign, IsAtLeast Zero amb abigger, Pick abigger b a smaller, GCD (Succ smaller) diff gcd) => GCD (Succ a) (Succ b) gcd |
(Add b amb a, Absolute amb diff sign, IsAtLeast Zero amb abigger, Pick abigger b a smaller, GCD (Succ smaller) diff gcd) => GCD (Succ a) (Succ b) gcd |
Nth n list elem rest => Nth (Succ n) (a, list) elem (a, rest) |
NaturalType a => NaturalType (Succ a) |
NaturalType a => WholeType (Succ a) |
AddOne Zero (Succ Zero) |
AddOne (Succ a) (Succ (Succ a)) |
AddOne (Succ a) (Succ (Succ a)) |
AddOne (Succ a) (Succ (Succ a)) |
IsAtLeast Zero (Succ b) False |
IsAtLeast (Succ a) Zero True |
IsAtLeast a b c => IsAtLeast (Succ a) (Succ b) c |
IsAtLeast a b c => IsAtLeast (Succ a) (Succ b) c |
(Add a b ab, AddOne ab ab1) => Add (Succ a) b ab1 |
(Multiply a b ab, Add ab b abb) => Multiply (Succ a) b abb |
(IsEven a e, Not e ne) => IsEven (Succ a) ne |
Divide Zero (Succ a) Zero |
Divide (Succ b) (Succ Zero) (Succ b) |
Divide (Succ b) (Succ Zero) (Succ b) |
Divide (Succ b) (Succ Zero) (Succ b) |
(Add b amb a, Divide amb (Succ (Succ b)) c) => Divide (Succ a) (Succ (Succ b)) (Succ c) |
(Add b amb a, Divide amb (Succ (Succ b)) c) => Divide (Succ a) (Succ (Succ b)) (Succ c) |
(Add b amb a, Divide amb (Succ (Succ b)) c) => Divide (Succ a) (Succ (Succ b)) (Succ c) |
(Add b amb a, Divide amb (Succ (Succ b)) c) => Divide (Succ a) (Succ (Succ b)) (Succ c) |