oalg-base-1.1.4.0: Algebraic structures on oriented entities and limits as a tool kit to solve algebraic problems.
Copyright(c) Erich Gut
LicenseBSD3
Maintainerzerich.gut@gmail.com
Safe HaskellSafe-Inferred
LanguageHaskell2010

OAlg.Data.Boolean.Proposition

Description

propositions on boolean structures which must always be true, i.e. tautologies. They serve also to describe the semantic of the boolean operators.

Synopsis

Documentation

prpBool :: Statement Source #

validity of the Boolean structure of Bool.

Tautologies

prpTautologies :: Boolean b => (b -> Statement) -> X b -> X [b] -> Statement Source #

tautologies on boolean structures.

Not

prpNotNot :: Boolean b => b -> b Source #

for all p holds: not (not p) <~> p.

And

prpAndAssoc :: Boolean b => b -> b -> b -> b Source #

for all a, b and c holds: (a && b) && c <~> a && (b && c).

prpAndOr :: Boolean b => b -> b -> b -> b Source #

for all a, b and c holds: (a && b) || c <~> (a || c) && (b || c).

prpAndTrue :: Boolean b => b -> b Source #

for all p holds: true && p <~> p.

prpAnds :: Boolean b => b -> [b] -> b Source #

for all a and as holds: and (a:as) <~> a && and as.

Or

prpOrAssoc :: Boolean b => b -> b -> b -> b Source #

for all a, b and c holds: (a || b) || c <~> a || (b || c).

prpOrAnd :: Boolean b => b -> b -> b -> b Source #

for all a, b and c holds: (a || b) && c <~> (a && c) || (b && c).

prpOrs :: Boolean b => b -> [b] -> b Source #

for all a and as holds: or (a:as) <~> a || or as.

Impl

prpImplRefl :: Boolean b => b -> b Source #

for all p holds: p ~> p.

prpImplFalseEverything :: Boolean b => b -> b Source #

for all p holds: false ~> (p <~> true).

i.e. a false premisis implies everithing.

prpImplCurry :: Boolean b => b -> b -> b -> b Source #

for all a, b and c holds: ((a && b) ~> c) <~> (a ~> b ~> c).

prpImplTransitive :: Boolean b => b -> b -> b -> b Source #

for all a, b and c holds: (a ~> b) && (b ~> c) ~> (a ~> c).

Eqvl

prpEqvlAnd :: Boolean b => b -> b -> b Source #

for all a and b holds: (a <~> b) <~> ((a ~> b) && (b ~> a)).

Lazy

prpLazy :: Boolean b => (b -> Statement) -> Statement Source #

laziness of and, or and (~>).

prpLazyAnd :: Boolean b => b Source #

lazy evaluation of &&, i.e. false && undefined <~> false.

Note (undefined && false) evaluates to an exception!

prpLazyOr :: Boolean b => b Source #

lazy evaluationof ||, i.e. true || undefined.

prpLazyImpl :: Boolean b => b Source #

lazy evaluation of ~>, i.e. false :=> undefined.