Kind/book/QBool.match.kind2
2024-03-01 23:31:05 -03:00

42 lines
783 B
Plaintext

QBool.match
: ∀(a: QBool)
∀(P: ∀(x: QBool) *)
∀(t: (P QBool.true))
∀(f: (P QBool.false))
(P a)
= λa λP λt λf
(~(~a P)
λx (P a)
λtag
#match tag = tag {
#0: λx (x t)
#+: λx
(#match tag_1 = tag-1 {
#0: λx (x f)
#+: λx (x λe (Empty.absurd e *))
}: ∀(x:
∀(x:
#match tag_1 = tag_1 {
#0: (P QBool.false)
#+: ∀(x: Empty) *
}: *
)
(P a)
)
(P a)
x
)
}: ∀(x:
∀(x:
#match tag = tag {
#0: (P QBool.true)
#+: #match tag_1 = tag-1 {
#0: (P QBool.false)
#+: ∀(x: Empty) *
}: *
}: *
)
(P a)
)
(P a)
)