lean2/tests/lean/implicit1.lean
Leonardo de Moura dd72269b13 feat(frontends/lean): rename command Set to SetOption
It is not nice to have Set as a reserved keyword. See example examples/lean/set.lean

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2013-12-18 21:18:48 -08:00

20 lines
No EOL
718 B
Text

Variable f : Int -> Int -> Int
Show forall a, f a a > 0
Show forall a b, f a b > 0
Variable g : Int -> Real -> Int
Show forall a b, g a b > 0
Show forall a b, g a (f a b) > 0
SetOption pp::coercion true
Show forall a b, g a (f a b) > 0
Show fun a, a + 1
Show fun a b, a + b
Show fun (a b) (c : Int), a + c + b
(*
The next example shows a limitation of the current elaborator.
The current elaborator resolves overloads before solving the implicit argument constraints.
So, it does not have enough information for deciding which overload to use.
*)
Show (fun a b, a + b) 10 20.
Variable x : Int
(* The following one works because the type of x is used to decide which + should be used *)
Show fun a b, a + x + b