mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-11 13:59:31 -06:00
100 lines
2.2 KiB
Plaintext
100 lines
2.2 KiB
Plaintext
abstract basic {
|
|
cat Float ; -- 0.693147
|
|
cat Int ; -- 0.693147
|
|
cat N ; -- 0.693147
|
|
cat P N ; -- 0.693147
|
|
cat S ; -- 0.693147
|
|
cat String ; -- 0.693147
|
|
data c : N -> S ; -- 1.38629
|
|
fun floatLit : Float -> S ; -- 1.38629
|
|
fun ind : P z -> ((x : N) -> P x -> P (s x)) -> (x : N) -> P x ; -- 0.693147
|
|
fun intLit : Int -> S ; -- 1.38629
|
|
fun nat : (x : N) -> P x ; -- 0.693147
|
|
data s : N -> N ; -- 0.693147
|
|
fun stringLit : String -> S ; -- 1.38629
|
|
data z : N ; -- 0.693147
|
|
}
|
|
concrete basic_cnc {
|
|
lincat Float = [
|
|
"s"
|
|
]
|
|
lindef Float : String(0) -> Float(0) = [
|
|
<0,0>
|
|
]
|
|
linref Float : Float(0) -> String(0) = [
|
|
<0,0>
|
|
]
|
|
lincat Int = [
|
|
"s"
|
|
]
|
|
lindef Int : String(0) -> Int(0) = [
|
|
<0,0>
|
|
]
|
|
linref Int : Int(0) -> String(0) = [
|
|
<0,0>
|
|
]
|
|
lincat N = [
|
|
"s"
|
|
]
|
|
lindef N : String(0) -> N(0) = [
|
|
<0,0>
|
|
]
|
|
linref N : ∀{i<2} . N(i) -> String(0) = [
|
|
<0,0>
|
|
]
|
|
lincat P = [
|
|
"s"
|
|
]
|
|
lindef P : String(0) -> P(0) = [
|
|
<0,0>
|
|
]
|
|
linref P : P(0) -> String(0) = [
|
|
<0,0>
|
|
]
|
|
lincat S = [
|
|
""
|
|
]
|
|
lindef S : String(0) -> S(0) = [
|
|
<0,0>
|
|
]
|
|
linref S : S(0) -> String(0) = [
|
|
<0,0>
|
|
]
|
|
lincat String = [
|
|
"s"
|
|
]
|
|
lindef String : String(0) -> String(0) = [
|
|
<0,0>
|
|
]
|
|
linref String : String(0) -> String(0) = [
|
|
<0,0>
|
|
]
|
|
lin c : ∀{i<2} . N(i) -> S(0) = [
|
|
<0,0>
|
|
]
|
|
lin floatLit : Float(0) -> S(0) = [
|
|
<0,0>
|
|
]
|
|
lin ind : ∀{i<2} . P(0) * P(0) * N(i) -> P(0) = [
|
|
<0,0> "&" "λ" SOFT_BIND <1,$0> SOFT_BIND "," SOFT_BIND <1,$1> "." <1,0>
|
|
]
|
|
lin intLit : Int(0) -> S(0) = [
|
|
<0,0>
|
|
]
|
|
lin nat : ∀{i<2} . N(i) -> P(0) = [
|
|
"nat" SOFT_BIND "(" SOFT_BIND <0,0> SOFT_BIND ")"
|
|
]
|
|
lin s : N(0) -> N(0) = [
|
|
<0,0> "+" "1"
|
|
]
|
|
lin s : N(1) -> N(0) = [
|
|
"1"
|
|
]
|
|
lin stringLit : String(0) -> S(0) = [
|
|
<0,0>
|
|
]
|
|
lin z : N(1) = [
|
|
"0"
|
|
]
|
|
}
|