lean4-htt/tests/lean/parser1.lean.expected.out
2018-09-19 12:36:34 -07:00

1032 lines
30 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 "")]