mirror of
https://github.com/HigherOrderCO/Kind.git
synced 2024-10-26 16:20:58 +03:00
64 lines
1.4 KiB
Plaintext
64 lines
1.4 KiB
Plaintext
// Ideal:
|
|
//
|
|
// QBool2.true : QBool2 = ~λP λnew (new #0)
|
|
// QBool2.false : QBool2 = ~λP λnew (new #1)
|
|
// QBool2.bad : QBool2 = ~λP λnew (new #2 ?impossible)
|
|
//
|
|
// QBool2 : * =
|
|
// $self
|
|
// ∀(P: ∀(x: QBool2) *)
|
|
// ∀(new: ∀(tag: #U60) #match tag = tag {
|
|
// #0: (P QBool2.true)
|
|
// #1: (P QBool2.false)
|
|
// #+: ∀(e: Empty) *
|
|
// }: *)
|
|
// (P self)
|
|
//
|
|
// QBool2.match
|
|
// : ∀(a: QBool2)
|
|
// ∀(P: ∀(x: QBool2) *)
|
|
// ∀(t: (P QBool2.true))
|
|
// ∀(f: (P QBool2.false))
|
|
// (P a)
|
|
// = λa λP λt λf
|
|
// (~a P λtag #match tag = tag {
|
|
// #0: t
|
|
// #1: f
|
|
// #+: λe (~e λx(*))
|
|
// })
|
|
|
|
QBool2.true : QBool2 = ~λP λnew (new #0)
|
|
QBool2.false : QBool2 = ~λP λnew (new #1)
|
|
QBool2.bad : QBool2 = ~λP λnew (new #2 ?impossible)
|
|
|
|
QBool2 : * =
|
|
$(self: QBool2)
|
|
∀(P: ∀(x: QBool2) *)
|
|
∀(new: ∀(tag: #U60) #match tag = tag {
|
|
#0: (P QBool2.true)
|
|
#+: #match tag_1 = tag-1 {
|
|
#0: (P QBool2.false)
|
|
#+: ∀(e: Empty) *
|
|
}: *
|
|
}: *)
|
|
(P self)
|
|
|
|
QBool2.match
|
|
: ∀(a: QBool2)
|
|
∀(P: ∀(x: QBool2) *)
|
|
∀(t: (P QBool2.true))
|
|
∀(f: (P QBool2.false))
|
|
(P a)
|
|
= λa λP λt λf
|
|
(~a P λtag #match tag = tag {
|
|
#0: t
|
|
#+: #match tag_1 = tag-1 {
|
|
#0: f
|
|
#+: λe (~e λx(*))
|
|
}: #match tag_1 = tag_1 { #0: (P QBool2.false) #+: ∀(e: Empty) * }: *
|
|
}: #match tag = tag { #0: (P QBool2.true) #+: #match tag_1 = tag-1 { #0: (P QBool2.false) #+: ∀(e: Empty) * }: * }: *)
|
|
|
|
|
|
|
|
|