1032 lines
30 KiB
Text
1032 lines
30 KiB
Text
result:
|
||
[(module [(prelude "prelude")] [] []) (eoi "")]
|
||
result:
|
||
[(module [] [(import "import" [(import_path [] `me)])] []) (eoi "")]
|
||
error at line 1, column 0:
|
||
expected command
|
||
partial syntax tree:
|
||
[(module [] [] []) (eoi "")]
|
||
error at line 1, column 6:
|
||
unexpected end of file
|
||
expected identifier
|
||
partial syntax tree:
|
||
[(module
|
||
[]
|
||
[(import "import" [(import_path [] <missing>) <missing>]) <missing>]
|
||
<missing>)
|
||
(eoi "")]
|
||
result:
|
||
[(module
|
||
[(prelude "prelude")]
|
||
[(import "import" [(import_path ["." "."] `a) (import_path [] `b)])
|
||
(import "import" [(import_path [] `c)])]
|
||
[])
|
||
(eoi "")]
|
||
result:
|
||
[(module
|
||
[]
|
||
[]
|
||
[(command.open
|
||
"open"
|
||
[(command.open_spec `me [] [] [] []) (command.open_spec `you [] [] [] [])])])
|
||
(eoi "")]
|
||
result:
|
||
[(module
|
||
[]
|
||
[]
|
||
[(command.open
|
||
"open"
|
||
[(command.open_spec
|
||
`me
|
||
[(command.open_spec.as "as" `you)]
|
||
[(command.open_spec.only ["(" `a] [`b `c] ")")]
|
||
[(command.open_spec.renaming
|
||
["(" "renaming"]
|
||
[(command.open_spec.renaming.item `a "->" `b)
|
||
(command.open_spec.renaming.item `c "->" `d)]
|
||
")")]
|
||
[(command.open_spec.hiding "(" "hiding" [`a `b] ")")])])])
|
||
(eoi "")]
|
||
error at line 1, column 11:
|
||
expected command
|
||
partial syntax tree:
|
||
[(module
|
||
[]
|
||
[]
|
||
[(command.open
|
||
"open"
|
||
[(command.open_spec `me [] [] [] []) (command.open_spec `you [] [] [] [])])])
|
||
(eoi "")]
|
||
error at line 1, column 5:
|
||
expected identifier
|
||
error at line 1, column 9:
|
||
unexpected end of file
|
||
expected identifier
|
||
partial syntax tree:
|
||
[(module
|
||
[]
|
||
[]
|
||
[(command.open
|
||
"open"
|
||
[(command.open_spec <missing> <missing> <missing> <missing> <missing>)
|
||
<missing>])
|
||
(command.open
|
||
"open"
|
||
[(command.open_spec <missing> <missing> <missing> <missing> <missing>)
|
||
<missing>])])
|
||
(eoi "")]
|
||
error at line 1, column 8:
|
||
expected command
|
||
partial syntax tree:
|
||
[(module
|
||
[]
|
||
[]
|
||
[(command.open "open" [(command.open_spec `me [] [] [] [])])
|
||
(command.open "open" [(command.open_spec `you [] [] [] [])])])
|
||
(eoi "")]
|
||
result:
|
||
[(module
|
||
[]
|
||
[]
|
||
[(command.open "open" [(command.open_spec `a [] [] [] [])])
|
||
(command.section
|
||
"section"
|
||
[`b]
|
||
[(command.open "open" [(command.open_spec `c [] [] [] [])])
|
||
(command.section
|
||
"section"
|
||
[`d]
|
||
[(command.open "open" [(command.open_spec `e [] [] [] [])])]
|
||
"end"
|
||
[`d])]
|
||
"end"
|
||
[`b])])
|
||
(eoi "")]
|
||
result:
|
||
[(module [] [] [(command.section "section" [`a] [] "end" [])]) (eoi "")]
|
||
Type (max u v) : Type ((max u v)+1)
|
||
result:
|
||
[(module
|
||
[]
|
||
[]
|
||
[(command.check
|
||
"#check"
|
||
(term.app
|
||
(term.app
|
||
(term.sort_app (term.sort (1 "Type")) (level.leading (0 `max)))
|
||
(term.ident `u []))
|
||
(term.ident `v [])))])
|
||
(eoi "")]
|
||
(command.notation
|
||
"notation"
|
||
(command.notation_spec
|
||
(1
|
||
(command.notation_spec.rules
|
||
[]
|
||
[(command.notation_spec.rule
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
"+"
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "10"))])))
|
||
[(command.notation_spec.transition
|
||
(2
|
||
(command.notation_spec.argument
|
||
`b
|
||
[(command.notation_spec.action
|
||
":"
|
||
(command.notation_spec.action_kind (0 (base10_lit "10"))))])))])])))
|
||
":="
|
||
(term.hole "_"))
|
||
notation`+`:10 b:10 :=_
|
||
error at line 130, column 16:
|
||
expected command
|
||
error at line 134, column 61:
|
||
expected "/-" or "-/"
|
||
partial syntax tree:
|
||
[(module
|
||
[(prelude "prelude")]
|
||
[]
|
||
[(command.notation
|
||
"notation"
|
||
(command.notation_spec
|
||
(1
|
||
(command.notation_spec.rules
|
||
[]
|
||
[(command.notation_spec.rule
|
||
(command.notation_spec.notation_symbol
|
||
(0 (command.notation_spec.notation_quoted_symbol "`" "Prop" "`" [])))
|
||
[])])))
|
||
":="
|
||
(term.sort_app (term.sort (0 "Sort")) (level.leading (4 (base10_lit "0")))))
|
||
(command.notation
|
||
"notation"
|
||
(command.notation_spec
|
||
(1
|
||
(command.notation_spec.rules
|
||
[`f]
|
||
[(command.notation_spec.rule
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" $ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "1"))])))
|
||
[(command.notation_spec.transition
|
||
(2
|
||
(command.notation_spec.argument
|
||
`a
|
||
[(command.notation_spec.action
|
||
":"
|
||
(command.notation_spec.action_kind (0 (base10_lit "0"))))])))])])))
|
||
":="
|
||
(term.app (term.ident `f []) (term.ident `a [])))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (0 "prefix"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
"¬"
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "40"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (0 "prefix"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
"~"
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "40"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (3 "infixr"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" ∧ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "35"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (3 "infixr"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" /\\ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "35"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (3 "infixr"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" \\/ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "30"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (3 "infixr"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" ∨ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "30"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (1 "infix"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" <-> "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "20"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (1 "infix"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" ↔ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "20"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (1 "infix"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" = "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "50"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (1 "infix"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" == "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "50"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (1 "infix"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" ≠ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "50"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (1 "infix"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" ≈ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "50"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (1 "infix"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" ~ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "50"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (1 "infix"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" ≡ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "50"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (2 "infixl"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" ⬝ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "75"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (3 "infixr"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" ▸ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "75"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (3 "infixr"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" ▹ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "75"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (3 "infixr"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" ⊕ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "30"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (3 "infixr"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" × "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "35"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (2 "infixl"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" + "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "65"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (2 "infixl"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" - "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "65"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (2 "infixl"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" * "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "70"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (2 "infixl"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" / "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "70"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (2 "infixl"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" % "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "70"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (2 "infixl"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" %ₙ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "70"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (0 "prefix"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
"-"
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "100"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (3 "infixr"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" ^ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "80"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (3 "infixr"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" ∘ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "90"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (1 "infix"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" <= "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "50"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (1 "infix"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" ≤ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "50"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (1 "infix"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" < "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "50"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (1 "infix"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" >= "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "50"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (1 "infix"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" ≥ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "50"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (1 "infix"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" > "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "50"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (0 "prefix"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
"!"
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "40"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (2 "infixl"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" && "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "35"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (2 "infixl"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" || "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "30"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (1 "infix"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" ∈ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "50"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (1 "infix"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" ∉ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "50"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (2 "infixl"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" ∩ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "70"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (2 "infixl"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" ∪ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "65"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (1 "infix"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" ⊆ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "50"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (1 "infix"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" ⊇ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "50"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (1 "infix"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" ⊂ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "50"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (1 "infix"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" ⊃ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "50"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (1 "infix"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" \\ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "70"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (1 "infix"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" ∣ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "50"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (2 "infixl"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" ++ "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "65"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (3 "infixr"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
" :: "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "67"))]))))
|
||
(command.reserve_mixfix
|
||
["reserve" (command.mixfix.kind (2 "infixl"))]
|
||
(command.notation_spec.notation_symbol
|
||
(0
|
||
(command.notation_spec.notation_quoted_symbol
|
||
"`"
|
||
"; "
|
||
"`"
|
||
[(command.notation_spec.precedence ":" (base10_lit "1"))]))))
|
||
(command.universes "universes" [`u `v `w])
|
||
(command.declaration
|
||
(command.decl_modifiers
|
||
["/-- Auxiliary meta constant used by the compiler when erasing proofs from code. -/"]
|
||
[]
|
||
[]
|
||
["meta"]
|
||
[])
|
||
(command.declaration.inner
|
||
(5
|
||
(command.constant
|
||
"constant"
|
||
`lc_proof
|
||
(command.decl_sig
|
||
[(term.bracketed_binder
|
||
(1
|
||
(term.implicit_binder
|
||
"{"
|
||
(term.binder_content
|
||
[(term.binder_id (0 (term.ident `α [])))]
|
||
[(term.binder_content_type ":" (term.ident `Prop []))]
|
||
[])
|
||
"}")))]
|
||
[(command.decl_type ":" (term.ident `α []))])))))
|
||
(command.declaration
|
||
(command.decl_modifiers
|
||
["/-- Auxiliary meta constant used by the compiler to mark unreachable code. -/"]
|
||
[]
|
||
[]
|
||
["meta"]
|
||
[])
|
||
(command.declaration.inner
|
||
(5
|
||
(command.constant
|
||
"constant"
|
||
`lc_unreachable
|
||
(command.decl_sig
|
||
[(term.bracketed_binder
|
||
(1
|
||
(term.implicit_binder
|
||
"{"
|
||
(term.binder_content
|
||
[(term.binder_id (0 (term.ident `α [])))]
|
||
[(term.binder_content_type
|
||
":"
|
||
(term.sort_app (term.sort (0 "Sort")) (level.leading (5 `u))))]
|
||
[])
|
||
"}")))]
|
||
[(command.decl_type ":" (term.ident `α []))])))))
|
||
(command.declaration
|
||
(command.decl_modifiers
|
||
["/-- Auxiliary meta constant used by the compiler to mark type casting. -/"]
|
||
[]
|
||
[]
|
||
["meta"]
|
||
[])
|
||
(command.declaration.inner
|
||
(5
|
||
(command.constant
|
||
"constant"
|
||
`lc_cast
|
||
(command.decl_sig
|
||
[(term.bracketed_binder
|
||
(1
|
||
(term.implicit_binder
|
||
"{"
|
||
(term.binder_content
|
||
[(term.binder_id (0 (term.ident `α [])))]
|
||
[(term.binder_content_type
|
||
":"
|
||
(term.sort_app (term.sort (0 "Sort")) (level.leading (5 `u))))]
|
||
[])
|
||
"}")))
|
||
(term.bracketed_binder
|
||
(1
|
||
(term.implicit_binder
|
||
"{"
|
||
(term.binder_content
|
||
[(term.binder_id (0 (term.ident `β [])))]
|
||
[(term.binder_content_type
|
||
":"
|
||
(term.sort_app (term.sort (0 "Sort")) (level.leading (5 `v))))]
|
||
[])
|
||
"}")))]
|
||
[(command.decl_type ":" (term.arrow (term.ident `α []) "→" (term.ident `β [])))])))))
|
||
(command.declaration
|
||
(command.decl_modifiers
|
||
[]
|
||
[]
|
||
[]
|
||
[]
|
||
[(command.decl_attribute "@[" [(command.attr_instance `inline [])] "]")])
|
||
(command.declaration.inner
|
||
(0
|
||
(command.def
|
||
"def"
|
||
`id
|
||
(command.decl_sig
|
||
[(term.bracketed_binder
|
||
(1
|
||
(term.implicit_binder
|
||
"{"
|
||
(term.binder_content
|
||
[(term.binder_id (0 (term.ident `α [])))]
|
||
[(term.binder_content_type
|
||
":"
|
||
(term.sort_app (term.sort (0 "Sort")) (level.leading (5 `u))))]
|
||
[])
|
||
"}")))
|
||
(term.bracketed_binder
|
||
(0
|
||
(term.explicit_binder
|
||
"("
|
||
(term.explicit_binder_content
|
||
(1
|
||
(term.binder_content
|
||
[(term.binder_id (0 (term.ident `a [])))]
|
||
[(term.binder_content_type ":" (term.ident `α []))]
|
||
[])))
|
||
")")))]
|
||
[(command.decl_type ":" (term.ident `α []))])
|
||
(command.decl_val (0 (command.simple_decl_val ":=" (term.ident `a []))))))))
|
||
(command.declaration
|
||
(command.decl_modifiers
|
||
[]
|
||
[]
|
||
[]
|
||
[]
|
||
[(command.decl_attribute "@[" [(command.attr_instance `inline [])] "]")])
|
||
(command.declaration.inner
|
||
(0
|
||
(command.def
|
||
"def"
|
||
`flip
|
||
(command.decl_sig
|
||
[(term.bracketed_binder
|
||
(1
|
||
(term.implicit_binder
|
||
"{"
|
||
(term.binder_content
|
||
[(term.binder_id (0 (term.ident `α [])))]
|
||
[(term.binder_content_type
|
||
":"
|
||
(term.sort_app (term.sort (0 "Sort")) (level.leading (5 `u))))]
|
||
[])
|
||
"}")))
|
||
(term.bracketed_binder
|
||
(1
|
||
(term.implicit_binder
|
||
"{"
|
||
(term.binder_content
|
||
[(term.binder_id (0 (term.ident `β [])))]
|
||
[(term.binder_content_type
|
||
":"
|
||
(term.sort_app (term.sort (0 "Sort")) (level.leading (5 `v))))]
|
||
[])
|
||
"}")))
|
||
(term.bracketed_binder
|
||
(1
|
||
(term.implicit_binder
|
||
"{"
|
||
(term.binder_content
|
||
[(term.binder_id (0 (term.ident `φ [])))]
|
||
[(term.binder_content_type
|
||
":"
|
||
(term.sort_app (term.sort (0 "Sort")) (level.leading (5 `w))))]
|
||
[])
|
||
"}")))
|
||
(term.bracketed_binder
|
||
(0
|
||
(term.explicit_binder
|
||
"("
|
||
(term.explicit_binder_content
|
||
(1
|
||
(term.binder_content
|
||
[(term.binder_id (0 (term.ident `f [])))]
|
||
[(term.binder_content_type
|
||
":"
|
||
(term.arrow
|
||
(term.ident `α [])
|
||
"→"
|
||
(term.arrow (term.ident `β []) "→" (term.ident `φ []))))]
|
||
[])))
|
||
")")))]
|
||
[(command.decl_type
|
||
":"
|
||
(term.arrow
|
||
(term.ident `β [])
|
||
"→"
|
||
(term.arrow (term.ident `α []) "→" (term.ident `φ []))))])
|
||
(command.decl_val
|
||
(0
|
||
(command.simple_decl_val
|
||
":="
|
||
(term.lambda
|
||
"λ"
|
||
[(term.binder
|
||
(1
|
||
(term.binder_content
|
||
[(term.binder_id (0 (term.ident `b [])))
|
||
(term.binder_id (0 (term.ident `a [])))]
|
||
[]
|
||
[])))]
|
||
","
|
||
(term.app (term.app (term.ident `f []) (term.ident `a [])) (term.ident `b []))))))))))
|
||
(command.declaration
|
||
(command.decl_modifiers
|
||
[]
|
||
[]
|
||
[]
|
||
[]
|
||
[(command.decl_attribute "@[" [(command.attr_instance `inline [])] "]")])
|
||
(command.declaration.inner
|
||
(0
|
||
(command.def
|
||
"def"
|
||
`id_delta
|
||
(command.decl_sig
|
||
[(term.bracketed_binder
|
||
(1
|
||
(term.implicit_binder
|
||
"{"
|
||
(term.binder_content
|
||
[(term.binder_id (0 (term.ident `α [])))]
|
||
[(term.binder_content_type
|
||
":"
|
||
(term.sort_app (term.sort (0 "Sort")) (level.leading (5 `u))))]
|
||
[])
|
||
"}")))
|
||
(term.bracketed_binder
|
||
(0
|
||
(term.explicit_binder
|
||
"("
|
||
(term.explicit_binder_content
|
||
(1
|
||
(term.binder_content
|
||
[(term.binder_id (0 (term.ident `a [])))]
|
||
[(term.binder_content_type ":" (term.ident `α []))]
|
||
[])))
|
||
")")))]
|
||
[(command.decl_type ":" (term.ident `α []))])
|
||
(command.decl_val (0 (command.simple_decl_val ":=" (term.ident `a []))))))))
|
||
(command.declaration
|
||
(command.decl_modifiers
|
||
["/-- Gadget for optional parameter support. -/"]
|
||
[]
|
||
[]
|
||
[]
|
||
[(command.decl_attribute "@[" [(command.attr_instance `reducible [])] "]")])
|
||
(command.declaration.inner
|
||
(0
|
||
(command.def
|
||
"def"
|
||
`opt_param
|
||
(command.decl_sig
|
||
[(term.bracketed_binder
|
||
(0
|
||
(term.explicit_binder
|
||
"("
|
||
(term.explicit_binder_content
|
||
(1
|
||
(term.binder_content
|
||
[(term.binder_id (0 (term.ident `α [])))]
|
||
[(term.binder_content_type
|
||
":"
|
||
(term.sort_app (term.sort (0 "Sort")) (level.leading (5 `u))))]
|
||
[])))
|
||
")")))
|
||
(term.bracketed_binder
|
||
(0
|
||
(term.explicit_binder
|
||
"("
|
||
(term.explicit_binder_content
|
||
(1
|
||
(term.binder_content
|
||
[(term.binder_id (0 (term.ident `default [])))]
|
||
[(term.binder_content_type ":" (term.ident `α []))]
|
||
[])))
|
||
")")))]
|
||
[(command.decl_type
|
||
":"
|
||
(term.sort_app (term.sort (0 "Sort")) (level.leading (5 `u))))])
|
||
(command.decl_val (0 (command.simple_decl_val ":=" (term.ident `α []))))))))
|
||
(command.declaration
|
||
(command.decl_modifiers
|
||
["/-- Gadget for marking output parameters in type classes. -/"]
|
||
[]
|
||
[]
|
||
[]
|
||
[(command.decl_attribute "@[" [(command.attr_instance `reducible [])] "]")])
|
||
(command.declaration.inner
|
||
(0
|
||
(command.def
|
||
"def"
|
||
`out_param
|
||
(command.decl_sig
|
||
[(term.bracketed_binder
|
||
(0
|
||
(term.explicit_binder
|
||
"("
|
||
(term.explicit_binder_content
|
||
(1
|
||
(term.binder_content
|
||
[(term.binder_id (0 (term.ident `α [])))]
|
||
[(term.binder_content_type
|
||
":"
|
||
(term.sort_app (term.sort (0 "Sort")) (level.leading (5 `u))))]
|
||
[])))
|
||
")")))]
|
||
[(command.decl_type
|
||
":"
|
||
(term.sort_app (term.sort (0 "Sort")) (level.leading (5 `u))))])
|
||
(command.decl_val (0 (command.simple_decl_val ":=" (term.ident `α []))))))))
|
||
(command.declaration
|
||
(command.decl_modifiers
|
||
["/-- Auxiliary declaration used to implement the notation (a : α) -/"]
|
||
[]
|
||
[]
|
||
[]
|
||
[(command.decl_attribute "@[" [(command.attr_instance `reducible [])] "]")])
|
||
(command.declaration.inner
|
||
(0
|
||
(command.def
|
||
"def"
|
||
`typed_expr
|
||
(command.decl_sig
|
||
[(term.bracketed_binder
|
||
(0
|
||
(term.explicit_binder
|
||
"("
|
||
(term.explicit_binder_content
|
||
(1
|
||
(term.binder_content
|
||
[(term.binder_id (0 (term.ident `α [])))]
|
||
[(term.binder_content_type
|
||
":"
|
||
(term.sort_app (term.sort (0 "Sort")) (level.leading (5 `u))))]
|
||
[])))
|
||
")")))
|
||
(term.bracketed_binder
|
||
(0
|
||
(term.explicit_binder
|
||
"("
|
||
(term.explicit_binder_content
|
||
(1
|
||
(term.binder_content
|
||
[(term.binder_id (0 (term.ident `a [])))]
|
||
[(term.binder_content_type ":" (term.ident `α []))]
|
||
[])))
|
||
")")))]
|
||
[(command.decl_type ":" (term.ident `α []))])
|
||
(command.decl_val (0 (command.simple_decl_val ":=" (term.ident `a []))))))))
|
||
(command.declaration
|
||
(command.decl_modifiers [] [] [] [] [])
|
||
(command.declaration.inner
|
||
(1
|
||
(command.abbreviation
|
||
"abbreviation"
|
||
`id_rhs
|
||
(command.decl_sig
|
||
[(term.bracketed_binder
|
||
(0
|
||
(term.explicit_binder
|
||
"("
|
||
(term.explicit_binder_content
|
||
(1
|
||
(term.binder_content
|
||
[(term.binder_id (0 (term.ident `α [])))]
|
||
[(term.binder_content_type
|
||
":"
|
||
(term.sort_app (term.sort (0 "Sort")) (level.leading (5 `u))))]
|
||
[])))
|
||
")")))
|
||
(term.bracketed_binder
|
||
(0
|
||
(term.explicit_binder
|
||
"("
|
||
(term.explicit_binder_content
|
||
(1
|
||
(term.binder_content
|
||
[(term.binder_id (0 (term.ident `a [])))]
|
||
[(term.binder_content_type ":" (term.ident `α []))]
|
||
[])))
|
||
")")))]
|
||
[(command.decl_type ":" (term.ident `α []))])
|
||
(command.decl_val
|
||
(0
|
||
(command.simple_decl_val
|
||
":="
|
||
(term.app
|
||
(term.app (term.ident `a []) (term.ident `inductive []))
|
||
(term.ident `punit [])))))))))
|
||
(command.declaration
|
||
(command.decl_modifiers [<missing>] <missing> <missing> <missing> <missing>)
|
||
<missing>)])
|
||
(eoi "")]
|