mtonnberg/refinement-proofs/3.0.0

NOTE: the latest version is 5.0.1

BasicTheories.NumberTheory

Some basic number proofs

Definition

type Even

An even Int

type alias Negative =
Not ZeroOrGreater

A negative number. Alias for Not ZeroOrGreater

type alias Odd =

alias for Not Even

A positive number

type Zero

A number that is Zero

type alias for Or Zero Positive. If used with an Int this the number is 0,1,2,3,....

Proofs

proveEven : Int -> Maybe (Proven Int Even)

Prove that a number is even

proveNegative : number -> Maybe (Proven number Negative)

Prove a number is negative

proveOdd : Int -> Maybe (Proven Int Odd)

Prove that a number is odd

provePositive : number -> Maybe (Proven number Positive)

Prove that a number is positive (>0)

proveZeroOrGreater : number -> Maybe (Proven number ZeroOrGreater)

Prove that a number is either zero or greater

Implications

A simple implication. Note this is strictly not needed since this implication is clear in the types - ZeroOrGreater = Or Zero Positive. An alternative is to use introOrL or or.