Kind/book/Kind.Term.kind2
2024-03-01 20:40:31 -03:00

61 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)