Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor: incorporate some changes from 8.17 and update version numbers #57

Merged
merged 100 commits into from
May 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
a9819ed
[build] Initial port to Dune
ejgallego Apr 7, 2023
4bec19e
Update README.md
jim-portegies Aug 21, 2023
602928e
Merge branch 'main' into dune
jim-portegies Aug 21, 2023
6caa820
Merge pull request #12 from ejgallego/dune
jim-portegies Aug 21, 2023
43ba36f
Update dune file in theories
jim-portegies Aug 21, 2023
7464450
Change importing Ltac2 modules and build only with dune
jim-portegies Aug 21, 2023
34819e3
Merge pull request #17 from impermeable/fix-dune-build
jellooo038 Aug 23, 2023
1aead4d
Update version numbers
jim-portegies Aug 24, 2023
4797cbc
Restore changes file and rename license file
jim-portegies Aug 27, 2023
524bc8b
Fix metadata in files
jim-portegies Aug 27, 2023
dee48ca
Add template tags
jim-portegies Aug 27, 2023
a708f4f
Add @install, minimal dune version, dev-repo to opam file
jim-portegies Aug 29, 2023
b57e01b
Added infrastructure for enforcing users to mention use of definitions.
jellooo038 Aug 7, 2023
1ba8161
Removed some unnecessary lemma's and corresponding tactics (that were…
jellooo038 Aug 7, 2023
880ec5f
Restored old lemmas in 'SupAndInf' necessary for keeping limsup file …
jellooo038 Aug 8, 2023
b3c89b2
Moved tests in SupAndInf.v file to separate test file. Small bug fix …
jellooo038 Aug 9, 2023
44005e6
'We need to show'-tactic now also accepts equivalent goals. Added 'By…
jellooo038 Aug 10, 2023
db4954f
Replaced use of 'it suffices to show' by 'we need to show' for unfold…
jellooo038 Aug 10, 2023
298df7d
Added testcases new behaviour tactic.
jellooo038 Aug 10, 2023
719ac80
Improved feedback given new restricted proof automation.
jellooo038 Aug 10, 2023
d311fde
Updated documentation.
jellooo038 Aug 10, 2023
d246e3a
Small change in error message.
jellooo038 Aug 10, 2023
64f8bb0
Moved 'AutomationFailure' exception type to 'Wateprove' file.
jellooo038 Aug 10, 2023
87741d2
Improved feedback 'ItHolds' for new restricted proof automation.
jellooo038 Aug 14, 2023
c461279
Replaced custom error shielded goal by standard error that can be cau…
jellooo038 Aug 15, 2023
5cd8c34
Added 'Since ...' clause as alternative to 'By ...' that accepts stat…
jellooo038 Aug 15, 2023
d4ed123
Removed acceptation equivalent goals from 'We need to show' tactic.
jellooo038 Aug 16, 2023
ae9de4e
Improved feedback 'By ... we conclude ...' for new restricted automat…
jellooo038 Aug 16, 2023
3539413
Improved feedback, now it says which part of a chain of (in)equalitie…
jellooo038 Aug 17, 2023
17db8a4
'Contradiction' now tries to find a contradiction to the previous sta…
jellooo038 Aug 21, 2023
1143690
Moved 'Obtain' tactic to separate file.
jellooo038 Aug 21, 2023
f240ac6
Simplified old notation 'Obtain' tactic. Now it automatically tries t…
jellooo038 Aug 22, 2023
e464820
Simplified names for hypotheses not labeled by user.
jellooo038 Aug 22, 2023
6228088
Added 'change' to 'Expand definition', so putting in different dummy …
jellooo038 Aug 22, 2023
7815667
Added StateGoal wrappers to subgoals of non-natural induction.
jellooo038 Aug 22, 2023
2463c3a
Added workaround for unexpected anomalies in restricted automation.
jellooo038 Aug 25, 2023
4a62a94
Strengthened workaround. Both to prevent more anomalies with hypothes…
jellooo038 Aug 29, 2023
72859f0
Replaced axiomatic definitions with locked ones. Also strengthened sh…
jellooo038 Aug 29, 2023
763231f
Fixed dune build.
jellooo038 Aug 29, 2023
4f32d67
Merge pull request #19 from impermeable/library-2023-2024
jim-portegies Aug 29, 2023
021edb3
feat: add warnings
jim-portegies Aug 24, 2023
802ca34
refactor: change the names of the warning functions
jim-portegies Aug 29, 2023
8675cf4
feat: add error function
jim-portegies Aug 29, 2023
aef95bd
Add files to _CoqProject.in
jim-portegies Aug 29, 2023
fb7b6d2
feat: use the warning in Conclusion.v
jim-portegies Aug 29, 2023
275a42a
feat: deal with Rabs Rmax Rmin more easily by destructing them
jim-portegies Aug 30, 2023
1c30861
Merge pull request #18 from impermeable/add-warning
jellooo038 Sep 1, 2023
b1212c3
Merge pull request #20 from impermeable/Rabs-Rmax-Rmin
jellooo038 Sep 1, 2023
2ce924d
Readded shortened 'Obtain accoriding to ...' tactic.
jellooo038 Aug 31, 2023
a50c21c
Reworked shielding to use Shorten database type. Includes new tactics…
jellooo038 Aug 31, 2023
d63e34e
Improved expanding def for sup and inf.
jellooo038 Sep 1, 2023
1413d44
Merge pull request #21 from impermeable/lib-2023-2024-part3-prepublish
jim-portegies Sep 4, 2023
c70c699
Implemented user-level error throwing in tactics.
jellooo038 Sep 1, 2023
7eb89ca
Fixed small error from merge.
jellooo038 Sep 4, 2023
59a0ce2
Disabled debug mode automation.
jellooo038 Sep 4, 2023
714ce4a
Merge pull request #22 from impermeable/implement-user-errors
jim-portegies Sep 4, 2023
10a3167
Reverted back to old SupAndInf.v file.
jellooo038 Sep 4, 2023
05ba478
Replaced wrapping after 'Expand the definition of ...' by throwing er…
jellooo038 Sep 5, 2023
99df07d
Merge pull request #23 from impermeable/revert-to-old-approach-defini…
jim-portegies Sep 5, 2023
9e02e1c
Added tactic for unfolding that prints a message instead of throwing …
jellooo038 Oct 1, 2023
923ed0b
Merge pull request #25 from impermeable/internal-unfold-without-error
jim-portegies Oct 1, 2023
9ddd7b2
chore: bump version number
jim-portegies Oct 1, 2023
1ad0a73
fix: add internal unfold for general terms and tests for internal unfold
jim-portegies Oct 1, 2023
d479fbb
Merge pull request #27 from impermeable/internal-unfold-fix
jim-portegies Oct 1, 2023
3216ac8
Hint fixes (#30)
jim-portegies Oct 23, 2023
ed9b829
Automation debug (#31)
jim-portegies Oct 23, 2023
bb1779f
feat: use N1 instead of N in definition convergence
jim-portegies Oct 28, 2023
aaa23be
Improve either (#32)
jim-portegies Oct 31, 2023
52b1c0b
chore: update changelog and bump version number in opam file
jim-portegies Nov 4, 2023
11d728d
Tactics for using strong induction to define index sequence (#33)
jellooo038 Nov 5, 2023
cd73ff8
Show version number (#34)
jim-portegies Nov 5, 2023
f5812f6
Allow testing against a folder with dune's runtest and set version nu…
jim-portegies Nov 6, 2023
8966278
fix: call the correct test script
jim-portegies Nov 6, 2023
648ac1e
Set Help to use default automation system. (#36)
jellooo038 Nov 6, 2023
4c34e3f
Fix merge conflicts
jim-portegies Dec 27, 2023
f65a96b
Change required version number
jim-portegies Dec 27, 2023
5d83fee
Try to fix coq requirement
jim-portegies Dec 27, 2023
99cc943
Fix for problems with strong induction for defining index sequence. (…
jellooo038 Dec 27, 2023
4043052
fix: some small fixes to be compatible with dev
jim-portegies Dec 27, 2023
1108e7c
Merge branch 'main' into testmaster
jim-portegies Dec 27, 2023
11a2dbe
fix: change order fold_right arguments in index sequence
jim-portegies Dec 27, 2023
2d3d663
fix: Small changes to the sequences and subsequences files because au…
jim-portegies Dec 30, 2023
5a19bd1
chore: Change version number
jim-portegies Dec 30, 2023
7a45d3e
try to allow for dev version
jim-portegies Dec 30, 2023
917b7fe
fix: try with version numbers
jim-portegies Dec 30, 2023
330925f
fix: try to fix version numbers
jim-portegies Dec 30, 2023
3cdccd0
fix: Remove unnecessary import in Sequences.v
jim-portegies Dec 30, 2023
b08e218
feat: add logging sentence for wp_autorewrite
jim-portegies Dec 30, 2023
808d186
feat: add logging sentence for wp_autorewrite (#43)
jim-portegies Dec 30, 2023
e9aeb7e
feat: create option to print rewrite hints (#44)
jim-portegies Dec 31, 2023
bd8b418
Merge branch 'main' into testmaster
jim-portegies Dec 31, 2023
2d8b9ea
fix: Fix autorewrite (the env variable didn't come through properly)
jim-portegies Dec 31, 2023
7e0c89b
fix: Compatibility with compilers >= 4.09.0 (#45)
jim-portegies Jan 1, 2024
229b0f9
Merge branch 'main' into testmaster
jim-portegies Jan 1, 2024
461e6e4
fix: Exclude s390x architecture
jim-portegies Jan 4, 2024
89f0d88
refactor: put *.install and *.diags in gitignore
jim-portegies Jan 4, 2024
da530fe
Merge branch 'coq-master' into testmaster
jim-portegies May 4, 2024
1a9afe7
fix: fix wrong merges
jim-portegies May 4, 2024
82922da
Rewrite the 'match' statement in Since.v to 'match!' (#50)
DikieDick May 4, 2024
bd5216c
refactor: incorporate some changes from 8.17 and update version numbers
jim-portegies May 4, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Change log for the coq-waterproof library

## Version 2.1.1+8.19

- Compatibility with earlier OCaml compilers
- Fixes for the strong induction tactic

## Version 2.1.0+8.17

- Improve the `Either` tactic: now proves and destructs ordinary 'ors' when the goal is a proposition
Expand Down
2 changes: 1 addition & 1 deletion coq-waterproof.opam
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
opam-version: "2.0"
name: "coq-waterproof"
version: "2.1.0+8.19"
version: "2.1.1+8.19"
maintainer: "Jim Portegies <j.w.portegies@tue.nl>"
authors: [
"Jelle Wemmenhove"
Expand Down
2 changes: 1 addition & 1 deletion dune-project
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@

(package
(name coq-waterproof)
(version 2.1.0+8.19)
(version 2.1.1+8.19)
(synopsis "Coq proofs in a style that resembles non-mechanized mathematical proofs")
(depends coq-core coq-stdlib))
2 changes: 1 addition & 1 deletion src/META.coq-waterproof
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package "waterproof" (
directory = "."
version = "2.1.0+8.19"
version = "2.1.1+8.19"
description = "Waterproof plugin"
requires = "coq-core.plugins.ltac coq-core.plugins.ltac2"
archive(byte) = "waterproof.cma"
Expand Down
2 changes: 1 addition & 1 deletion src/g_waterproof.mlg
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ open Exceptions
open Hint_dataset_declarations
open Waterprove

let waterproof_version : string = "2.1.0+8.19"
let waterproof_version : string = "2.1.1+8.19"
}

VERNAC COMMAND EXTEND AutomationShieldEnableSideEff CLASSIFIED AS SIDEFF
Expand Down
9 changes: 6 additions & 3 deletions theories/Libs/Analysis/Sequences.v
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,12 @@ Proof.
Either (x <= 0) or (0 < x).
- Case (x <= 0).
Choose n := 1%nat.
It holds that (INR n > INR 0).
It holds that (x <= 0%nat).
We conclude that (INR n > x).
We claim that (INR 1 > INR 0).
{ We need to show that ( 1 > 0 ).
We conclude that (1 > 0).
}
It holds that (x <= INR 0).
We conclude that (n > x).
- Case (0 < x).
By archimed it holds that (IZR( up x) > x ∧ IZR( up x ) - x ≤ 1).
It holds that (IZR( up x ) > x).
Expand Down
2 changes: 1 addition & 1 deletion theories/Libs/Analysis/Subsequences.v
Original file line number Diff line number Diff line change
Expand Up @@ -282,7 +282,7 @@ Proof.
| 0 => f(0)
| S k => Nat.max(f(l), seq_of_max(f, k))
end)(g, n + 1))%nat.
It holds that (n + 1 = S n)%nat (i).
It holds that (n + 1 = S n)%nat.
It suffices to show that (g(n) ≤ seq_of_max(g, n))%nat.
We conclude that (g(n) ≤ seq_of_max(g, n))%nat.
Qed.
Expand Down
32 changes: 10 additions & 22 deletions theories/Util/Since.v
Original file line number Diff line number Diff line change
Expand Up @@ -30,19 +30,13 @@ Local Ltac2 get_type (x: constr) : constr := eval unfold type_of in (type_of $x)

Local Ltac2 check_if_not_reference (x : constr) :=
let type_x := get_type x in
match check_constr_equal type_x constr:(Prop) with
| true => ()
| false =>
match check_constr_equal type_x constr:(Set) with
| true => ()
| false =>
match check_constr_equal type_x constr:(Type) with
| true => ()
| false => throw (concat_list
match! type_x with
| Prop => ()
| Set => ()
| Type => ()
| _ => throw (concat_list
[of_string "Cannot use reference "; of_constr x; of_string " with `Since`.
Try `By "; of_constr x; of_string " ...` instead."])
end
end
end.

Local Ltac2 check_if_not_statement (x : constr) :=
Expand All @@ -51,17 +45,11 @@ Local Ltac2 check_if_not_statement (x : constr) :=
Try `Since "; of_constr x; of_string " ...` instead."]
in
let type_x := get_type x in
match check_constr_equal type_x constr:(Prop) with
| true => throw err_msg
| false =>
match check_constr_equal type_x constr:(Set) with
| true => throw err_msg
| false =>
match check_constr_equal type_x constr:(Type) with
| true => throw err_msg
| false => ()
end
end
match! type_x with
| Prop => throw err_msg
| Set => throw err_msg
| Type => throw err_msg
| _ => ()
end.


Expand Down
Loading