Package modular-def: modular-def

Information

namemodular-def
version1.0
descriptionmodular-def
authorJoe Hurd <joe@gilith.com>
licenseMIT
provenanceHOL Light theory extracted on 2011-02-19
showData.Bool

Files

Defined Type Operator

Defined Constants

Theorems

x. Number.Modular.fromNatural (Number.Modular.toNatural x) = x

x.
    Number.Modular.toNatural (Number.Modular.fromNatural x) =
    Number.Natural.mod x Number.Modular.modulus

x.
    Number.Modular.¬ x =
    Number.Modular.fromNatural
      (Number.Natural.- Number.Modular.modulus
         (Number.Modular.toNatural x))

x y. Number.Modular.< x y ¬Number.Modular.≤ y x

x y. Number.Modular.- x y = Number.Modular.+ x (Number.Modular.¬ y)

x y.
    Number.Modular.≤ x y
    Number.Natural.≤ (Number.Modular.toNatural x)
      (Number.Modular.toNatural y)

x1 y1.
    Number.Modular.fromNatural (Number.Natural.* x1 y1) =
    Number.Modular.* (Number.Modular.fromNatural x1)
      (Number.Modular.fromNatural y1)

x1 y1.
    Number.Modular.fromNatural (Number.Natural.+ x1 y1) =
    Number.Modular.+ (Number.Modular.fromNatural x1)
      (Number.Modular.fromNatural y1)

x y.
    Number.Natural.< x Number.Modular.modulus
    Number.Natural.< y Number.Modular.modulus
    Number.Modular.fromNatural x = Number.Modular.fromNatural y x = y

Input Type Operators

Input Constants

Assumptions

T

x. Number.Modular.equivalent x x

() = λP. P ((select) P)

t. (x. t) t

t. (λx. t x) = t

() = λP. P = λx. T

x. x = x T

n.
    Number.Natural.< (Number.Natural.mod n Number.Modular.modulus)
      Number.Modular.modulus

() = λp q. p q p

n.
    Number.Natural.mod (Number.Natural.mod n Number.Modular.modulus)
      Number.Modular.modulus = Number.Natural.mod n Number.Modular.modulus

() = λp q. (λf. f p q) = λf. f T T

() = λP. q. (x. P x q) q

f g. f = g x. f x = g x

x y.
    Number.Modular.equivalent x y
    Number.Natural.mod x Number.Modular.modulus =
    Number.Natural.mod y Number.Modular.modulus

x y z.
    Number.Modular.equivalent x y Number.Modular.equivalent y z
    Number.Modular.equivalent x z

P. (x. y. P x y) y. x. P x (y x)

x y.
    Number.Modular.equivalent x = Number.Modular.equivalent y
    Number.Natural.mod x Number.Modular.modulus =
    Number.Natural.mod y Number.Modular.modulus

x y.
    Number.Natural.< x Number.Modular.modulus
    Number.Natural.< y Number.Modular.modulus
    Number.Modular.equivalent x = Number.Modular.equivalent y x = y

x1 x2 y1 y2.
    Number.Modular.equivalent x1 x2 Number.Modular.equivalent y1 y2
    Number.Modular.equivalent (Number.Natural.* x1 y1)
      (Number.Natural.* x2 y2)

x1 x2 y1 y2.
    Number.Modular.equivalent x1 x2 Number.Modular.equivalent y1 y2
    Number.Modular.equivalent (Number.Natural.+ x1 y1)
      (Number.Natural.+ x2 y2)

t. (T t t) (t T t) (F t F) (t F F) (t t t)