Leonardo de Moura
539bb4a282
feat: add failIfSuccess tactic parser
2020-04-09 10:55:03 -07:00
Leonardo de Moura
9a5bed0f94
fix: missing ! at whnfUntil
2020-04-09 10:49:20 -07:00
Leonardo de Moura
7a5fcfae8b
feat: add [recursor] attribute to Iff.elim
2020-04-09 10:45:27 -07:00
Leonardo de Moura
40336131bb
feat: do not switch to term mode in the RHS of induction and cases tactics
2020-04-08 17:45:06 -07:00
Daniel Selsam
fd61812b6e
fix: wrong instance order for several instances
2020-04-08 16:55:48 -07:00
Leonardo de Moura
e22af8d1ef
feat: add FloatArray
...
cc @dselsam
2020-04-07 18:05:54 -07:00
Leonardo de Moura
b8ea55c989
feat: expose some transcendental functions from the C library
...
cc @dselsam
2020-04-06 15:22:25 -07:00
Leonardo de Moura
705530b62b
fix: remove DecidableEq for Float
...
We cannot implement `DecidableEq Float` using C equality for
`double`. Reason: the C implementation is not even reflexive.
If we need `DecidableEq Float`, we will need to provide our own
implementation (i.e., a wrapper around the one provided by the
hardware). In this commit, we implement `HasBeq Float` instead.
cc @dselsam
2020-04-06 14:10:18 -07:00
Leonardo de Moura
8e84a8c9ec
feat: Float from big numbers
2020-04-06 14:05:17 -07:00
Sebastian Ullrich
f66039f7f0
feat: generalize Array function universes
2020-04-06 13:48:09 -07:00
Leonardo de Moura
746615d81d
chore: remove ⇒ as alternative for =>
2020-04-06 13:45:22 -07:00
Sebastian Ullrich
e971c8dd7a
feat: support Float in the interpreter
...
/cc @leodemoura @dselsam
2020-04-05 10:50:30 +02:00
Leonardo de Moura
acad6015c4
chore: add new primitives to object.h
2020-04-03 18:26:13 -07:00
Leonardo de Moura
64c3be44f8
fix: lean_unbox_float
2020-04-03 18:23:45 -07:00
Leonardo de Moura
8e952f3c36
chore: style
2020-04-03 17:48:06 -07:00
Leonardo de Moura
485034bbba
fix: bug at ir.cpp
2020-04-03 17:39:28 -07:00
Leonardo de Moura
c236a179f2
feat: enable externs
2020-04-03 17:19:48 -07:00
Leonardo de Moura
0e2ebd36ff
feat: make sure Float is in WHNF
2020-04-03 17:07:29 -07:00
Leonardo de Moura
b5f258773b
feat: add Float
2020-04-03 16:49:32 -07:00
Leonardo de Moura
60d84660e6
feat: add support for Float in the compiler
2020-04-03 16:39:29 -07:00
Leonardo de Moura
b0a02ef0bb
feat: emit float runtime primitives
2020-04-03 16:02:35 -07:00
Leonardo de Moura
71397aad36
feat: runtime primitives
2020-04-03 15:55:39 -07:00
Leonardo de Moura
52cffcb67f
feat: add Float.lean
2020-04-03 15:40:38 -07:00
Leonardo de Moura
af8bc28be0
fix: typo at IR.Expr.alphaEqv
2020-03-31 10:04:59 -07:00
Leonardo de Moura
0cbd09f967
chore: make sure generalizeTelescope signature is similar to other telescope methods
2020-03-30 11:43:41 -07:00
Sebastian Ullrich
b6fc9428f1
fix: support Windows newlines and '\r' escape
2020-03-27 13:21:21 -07:00
Leonardo de Moura
0595e8a78a
feat: add tryPureCoe
...
@Kha It seems to work reasonably well. It didn't break any test.
2020-03-27 11:20:43 -07:00
Leonardo de Moura
3c699eb915
feat: add mkAppOptM
2020-03-27 11:14:38 -07:00
Sebastian Ullrich
fcdbdeecaf
feat: delaborator: use implicit lambdas where possible
...
/cc @leodemoura it's not bullet-proof (unless `pp.explicit` is set), but let's
see if it is good enough in practice
2020-03-27 14:55:46 +01:00
Sebastian Ullrich
db93638a96
feat: delab forallE
2020-03-27 11:59:58 +01:00
Sebastian Ullrich
f39ea47376
chore: brackted ~> bracketed
2020-03-27 10:42:36 +01:00
Sebastian Ullrich
a79a2888d0
refactor: simplify delabLamAux
2020-03-27 10:42:36 +01:00
Leonardo de Moura
02acdee9ce
feat: disable implicit lambda insertion for fun containing {} or []
...
cc @Kha
2020-03-26 14:32:12 -07:00
Leonardo de Moura
b4b5f2736f
feat: elaborate [] and {} binder annotations in lambda abstractions
...
We can simulate Lean3 behavior.
2020-03-26 14:20:39 -07:00
Leonardo de Moura
34ec66edb2
chore: re-enable {} and [] annotations at fun
2020-03-26 14:15:07 -07:00
Leonardo de Moura
07ffa535fe
refactor: decide whether to insert implicit lambdas AFTER macro expansion
...
cc @Kha
2020-03-26 13:53:15 -07:00
Leonardo de Moura
e682c1c88f
fix: make sure @ disable new syntax and macros too
...
cc @Kha
2020-03-26 12:14:55 -07:00
Leonardo de Moura
0c5a08a16e
chore: make sure Delaborator.lean still compiles
...
@Kha I removed `{}` `[]` from `funBinder`.
Please make sure `Delaborator.lean` still does what you want.
2020-03-26 10:40:16 -07:00
Leonardo de Moura
19be2a5ade
chore: remove {} and [] from funBinder
2020-03-26 10:40:16 -07:00
Leonardo de Moura
6625656940
refactor: remove support for fun {a : A} => ...
...
The semantics was weird. It seems Agda is also having problems with
it. Here is an example that demonstrates how weird the semantics is:
```lean
check (fun {β α} (a : α) (b : β) => (b, a) : {α : Type} → {β : Type} → (a : α) → (b : β) → β × α)
-- Same example using `def`
def f : {α : Type} → {β : Type} → α → β → β × α :=
fun {β : Type} {α : Type} (a : α) (b : β) => (b, a)
```
Both commands were being accepted before this commit. Note that it
flips `β` and `α`.
Here is an example that did not work before this commit and would
confuse users.
```lean
check
let id := fun {α} (a : α) => a;
id [id 1]
```
users would have to write
```lean
check
let id {α} (a : α) := a;
id [id 1]
```
@Kha The Delaborator.lean test broke and I "fixed" by removing the
`{}` from it, and copying `produced` over `expected`. Please make sure
it still makes sense.
2020-03-26 10:40:16 -07:00
Leonardo de Moura
227f985f84
fix: bug at generalizeTelescope
2020-03-25 16:00:55 -07:00
Leonardo de Moura
08aa4db110
feat: add generalizeTelescope
2020-03-25 16:00:55 -07:00
Sebastian Ullrich
6ffe310c48
feat: delab coercions
2020-03-24 17:27:10 +01:00
Sebastian Ullrich
fdc03c9d74
feat: delab projections
2020-03-24 17:27:02 +01:00
Leonardo de Moura
098b0edbcb
chore: remove dead code
2020-03-23 15:56:29 -07:00
Leonardo de Moura
2c12a073fa
fix: missing file
2020-03-23 15:49:22 -07:00
Leonardo de Moura
2cc0f25bf5
feat: getLine at EOF should return empty string
...
This is the same approach used in Rust, and it simplifies the code.
2020-03-23 15:44:47 -07:00
Leonardo de Moura
dc80b76106
feat: add IO.FS.lines
2020-03-23 14:53:27 -07:00
Leonardo de Moura
12c5075c67
fix: String.dropRight
2020-03-23 14:51:05 -07:00
Leonardo de Moura
41949ee801
refactor: String.toNat ==> String.toNat? and String.toNat!
2020-03-23 14:29:48 -07:00