版博士V2.0程序
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

33 строки
1.2 KiB

  1. /**
  2. * Heyting algebras are bounded (distributive) lattices that are also equipped with an additional binary operation
  3. * `implies` (also written as `→`). Heyting algebras also define a complement operation `not` (sometimes written as
  4. * `¬a`)
  5. *
  6. * However, in Heyting algebras this operation is only a pseudo-complement, since Heyting algebras do not necessarily
  7. * provide the law of the excluded middle. This means that there is no guarantee that `a ∨ ¬a = 1`.
  8. *
  9. * Heyting algebras model intuitionistic logic. For a model of classical logic, see the boolean algebra type class
  10. * implemented as `BooleanAlgebra`.
  11. *
  12. * A `HeytingAlgebra` must satisfy the following laws in addition to `BoundedDistributiveLattice` laws:
  13. *
  14. * - Implication:
  15. * - `a → a <-> 1`
  16. * - `a ∧ (a → b) <-> a ∧ b`
  17. * - `b ∧ (a → b) <-> b`
  18. * - `a → (b ∧ c) <-> (a → b) ∧ (a → c)`
  19. * - Complemented
  20. * - `¬a <-> a → 0`
  21. *
  22. * @since 2.0.0
  23. */
  24. import { BoundedDistributiveLattice } from './BoundedDistributiveLattice'
  25. /**
  26. * @category model
  27. * @since 2.0.0
  28. */
  29. export interface HeytingAlgebra<A> extends BoundedDistributiveLattice<A> {
  30. readonly implies: (x: A, y: A) => A
  31. readonly not: (x: A) => A
  32. }