Commit graph

12 commits

Author SHA1 Message Date
Leonardo de Moura
bdc8e1ced8 feat(library/init/data/char): char as an unicode scalar value
TODO: this is the first step to have better unicode support.
2017-10-23 10:55:26 -07:00
Leonardo de Moura
4eefc41b6e refactor(*): wrap string in a structure
We want to make sure string users do not depend on the string
implementation. This is the first step.

We need this refactoring *now* to make sure it will not be
super painful to address issue #1175
2017-06-07 17:30:49 -07:00
Leonardo de Moura
a30081a715 feat(library/tactic/congruence/congruence_closure): interpreted values in the same equivalence class 2016-12-25 11:09:55 -08:00
Leonardo de Moura
f9fb041e04 fix(library/comp_val): mk_int_val_ne_proof
There was a typo in the proof generation. The weird part is that the
proof was valid, but it was very inefficient to check.
The proof was valid because ((n:int) ≥ m) reduces to true/false if n and
m are integer numerals. Thus, if ((n:int) ≥ m) holds then `trivial` is a
valid proof.
However, the reduction is extremely inefficient since it relies on
computations in unary.

In the buggy version, we provided a proof for (a >= 0) where (b >= 0)
was expected. However, both types are definitionally equal to true.
This is why the proof worked.
2016-12-24 15:54:48 -08:00
Leonardo de Moura
3061d8b9a3 feat(library): add mk_int_val_ne_proof 2016-12-24 15:22:31 -08:00
Leonardo de Moura
98fbe76f30 feat(library/comp_val): add mk_string_val_ne_proof 2016-11-23 13:19:24 -08:00
Leonardo de Moura
680bab8bb8 feat(library/comp_val): add mk_fin_val_ne_proof and mk_char_val_ne_proof 2016-11-23 10:25:04 -08:00
Leonardo de Moura
357b9adefc chore(library/comp_val): remove unnecessary branches 2016-11-22 16:59:49 -08:00
Leonardo de Moura
d3d10edbf0 fix(library/comp_val): missing case 2016-11-22 16:50:11 -08:00
Leonardo de Moura
1ebc37f513 fix(library/comp_val): missing return value 2016-11-22 16:43:35 -08:00
Leonardo de Moura
f4b1413cee feat(library/comp_val): add mk_nat_val_lt_proof and mk_nat_val_le_proof 2016-11-22 15:14:10 -08:00
Leonardo de Moura
227e16ea6b feat(library): add mk_nat_val_ne_proof
Procedure for building an efficient disequality proof for natural
number values encoded in binary.
2016-11-19 17:02:48 -08:00