Type theory MOC Type of booleans The type of booleans π has two canonical terms: 0 and 1, often called false and true. In (non-dependent) programming and classical mathematics, predicates are usually thought of as having values in π. 0 == 1 # False 1 == 1 # True This is justified by the fact that, in the category Category of sets of classical mathematics,1 the corresponding set π is a subobject classifier. In constructive contexts where the Law of excluded middle is not assumed, however, this is not the case (we instead need a Universe of propositions Ξ©), so the role played by π is quite different. Standard presentation The type of booleans is usually defined in a type theory as a positive inductive type. The standard presentation is as follows: ind Formation rule β’π Introduction rules β’0:πβ’1:π Induction rule Ξ,π₯:πβ’πΆ(π₯)Ξ,π0:πΆ(0),π1:πΆ(1),π:πβ’indπβ‘(π0,π1,π):πΆ(π) Judgemental computation rules Ξ,π₯:πβ’πΆ(π₯)Ξ,π0:πΆ(0),π1:πΆ(1)β’indπβ‘(π0,π1,0)=π0:πΆ(0)Ξ,π₯:πβ’πΆ(π₯)Ξ,π0:πΆ(0),π1:πΆ(1)β’indπβ‘(π0,π1,1)=π1:πΆ(1) Agda 1Lab data Bool : Type where true false : Bool develop | en | SemBr Footnotes See ETCS. β©