mirror of
https://github.com/HigherOrderCO/Kind.git
synced 2024-09-11 17:56:48 +03:00
62 lines
1.4 KiB
Plaintext
62 lines
1.4 KiB
Plaintext
Kind.Term
|
|
: *
|
|
= $(self: Kind.Term)
|
|
∀(P: ∀(x: Kind.Term) *)
|
|
∀(all:
|
|
∀(nam: String)
|
|
∀(inp: Kind.Term)
|
|
∀(bod: ∀(x: Kind.Term) Kind.Term)
|
|
(P (Kind.all nam inp bod))
|
|
)
|
|
∀(lam:
|
|
∀(nam: String) ∀(bod: ∀(x: Kind.Term) Kind.Term)
|
|
(P (Kind.lam nam bod))
|
|
)
|
|
∀(app:
|
|
∀(fun: Kind.Term) ∀(arg: Kind.Term)
|
|
(P (Kind.app fun arg))
|
|
)
|
|
∀(ann:
|
|
∀(val: Kind.Term) ∀(typ: Kind.Term)
|
|
(P (Kind.ann val typ))
|
|
)
|
|
∀(slf:
|
|
∀(nam: String) ∀(bod: ∀(x: Kind.Term) Kind.Term)
|
|
(P (Kind.slf nam bod))
|
|
)
|
|
∀(ins: ∀(val: Kind.Term) (P (Kind.ins val)))
|
|
∀(ref:
|
|
∀(nam: String) ∀(val: Kind.Term)
|
|
(P (Kind.ref nam val))
|
|
)
|
|
∀(def:
|
|
∀(nam: String)
|
|
∀(val: Kind.Term)
|
|
∀(bod: ∀(x: Kind.Term) Kind.Term)
|
|
(P (Kind.def nam val bod))
|
|
)
|
|
∀(set: (P Kind.set))
|
|
∀(u60: (P Kind.u60))
|
|
∀(num: ∀(val: #U60) (P (Kind.num val)))
|
|
∀(op2:
|
|
∀(opr: Kind.Oper) ∀(fst: Kind.Term) ∀(snd: Kind.Term)
|
|
(P (Kind.op2 opr fst snd))
|
|
)
|
|
∀(mat:
|
|
∀(nam: String)
|
|
∀(x: Kind.Term)
|
|
∀(z: Kind.Term)
|
|
∀(s: ∀(x: Kind.Term) Kind.Term)
|
|
∀(p: ∀(x: Kind.Term) Kind.Term)
|
|
(P (Kind.mat nam x z s p))
|
|
)
|
|
∀(txt: ∀(lit: Kind.Text) (P (Kind.txt lit)))
|
|
∀(hol:
|
|
∀(nam: String) ∀(ctx: (List Kind.Term))
|
|
(P (Kind.hol nam ctx))
|
|
)
|
|
∀(var:
|
|
∀(nam: String) ∀(idx: Nat) (P (Kind.var nam idx))
|
|
)
|
|
(P self)
|