Commit graph

286 commits

Author SHA1 Message Date
Floris van Doorn
74366aa061 fix(hott): change some theorems to definitions
This ensures that the HoTT library compiles with the option --to_axiom
2015-12-17 12:46:16 -08:00
Floris van Doorn
da5f10ce63 feat(hott): minor fixes. allow the usage of numerals for trunc_index 2015-12-17 12:46:16 -08:00
Leonardo de Moura
61ecf018e9 feat(frontends/lean,library/tactic): add easy tactic parsing support for at ... and with ... 2015-12-17 12:18:32 -08:00
Leonardo de Moura
c824a0e050 chore(library,hott): enforce naming conventions 2015-12-17 11:36:58 -08:00
Leonardo de Moura
13419d1561 chore(hott/library): cleanup 2015-12-17 11:31:07 -08:00
Sebastian Ullrich
2185ee7e95 feat(library/tactic): make let tactic transparent, introduce new opaque note tactic
The new let tactic is semantically equivalent to let terms, while `note`
preserves its old opaque behavior.
2015-12-14 10:14:02 -08:00
Leonardo de Moura
e3a35ba4fd feat(frontends/lean): add 'with_attributes' tactical
closes #494
2015-12-13 18:27:44 -08:00
Leonardo de Moura
d4e49a8434 feat(library/tactic/intros_tactic): intro without argument should introduce a single variable
see #695
2015-12-13 16:28:39 -08:00
Floris van Doorn
4ef58f1ba5 chore(hott): more cleanup.
Make zero and one reducible (see algebra/port.md)
Change some theorems which need to compute into definitions
2015-12-10 10:42:16 -08:00
Floris van Doorn
c968f920ba chore(hott): cleanup 2015-12-10 10:42:16 -08:00
Floris van Doorn
2325d23f68 feat(hott): port nat and int from the standard library 2015-12-09 12:36:11 -08:00
Floris van Doorn
46739c8b70 feat(hott/algebra): port abstract structures 2015-12-09 12:34:06 -08:00
Floris van Doorn
14a2c8e444 fix(init/nat): add spaces around inequalities 2015-12-09 12:34:06 -08:00
Leonardo de Moura
85379b7706 feat(library/blast/actions/simple_actions): make sure contradiction action works even if classical logic support is not enabled
not (not (not a)) -> not a
2015-12-07 09:30:14 -08:00
Floris van Doorn
c44ad80e4e feat(homotopy/torus): give recursion and induction principle for the torus
also change the surface of the torus to a square instead of an equality between paths
2015-11-22 18:29:37 -08:00
Floris van Doorn
ae92e8c94d feat(hit/two_quotient): give dependent eliminator for two_quotients 2015-11-22 18:29:37 -08:00
Floris van Doorn
0537ef2bd9 chore(*): add me as author to files where I made nontrivial contributions 2015-11-22 14:21:26 -08:00
Floris van Doorn
cc03ca9c6d fix(reserved_notation): make :: bind stronger than ++
this allows us to write l1 ++ a :: l2 without parentheses
2015-11-22 14:21:26 -08:00
Floris van Doorn
5abc450fad feat(list): port list.basic from the standard library 2015-11-22 14:21:26 -08:00
Floris van Doorn
45d808ce7f feat(homotopy/circle): give all higher homotopy groups of the circle 2015-11-22 14:21:25 -08:00
Floris van Doorn
47be1e3a15 feat(types/pointed): change definition of loop space 2015-11-16 21:32:09 -08:00
Floris van Doorn
d402b67d25 feat(hott/function): show that a function is embedding iff it has propositional fibers 2015-11-16 21:32:09 -08:00
Floris van Doorn
e00ccff6de fix(hott): make sure the HoTT library compiles with --to_axiom 2015-11-16 21:32:09 -08:00
Leonardo de Moura
4d68e2a520 feat(library,hott): add eq.mpr and eq.mp lemmas 2015-11-14 15:40:47 -08:00
Leonardo de Moura
a07598a3ec feat(hott/init/logic): congr_fun was missing in the HoTT library, blast assumes it is part of the environment 2015-11-08 14:05:03 -08:00
Leonardo de Moura
01259a2d1c feat(library/app_builder): add helper functions for creating eq.rec applications 2015-11-08 14:05:01 -08:00
Floris van Doorn
4828afa781 fix(hott): small fixes after rebasing 2015-11-08 14:04:59 -08:00
Floris van Doorn
36dfb61a3e feat(category.limits): prove that yoneda preserves limits 2015-11-08 14:04:59 -08:00
Floris van Doorn
a99a99f047 feat(hit/quotient): prove the flattening lemma 2015-11-08 14:04:59 -08:00
Floris van Doorn
aa9f32a3bd fix(init/equiv): make transport not an instance 2015-11-08 14:04:59 -08:00
Floris van Doorn
f2d07ca23c feat(category): various small changes in category theory 2015-11-08 14:04:59 -08:00
Floris van Doorn
de1c47eda9 feat(categories): add exponential laws for categories
also give nicer rules to construct equalities between (pre)categories
2015-11-08 14:04:59 -08:00
Floris van Doorn
18ec5f8b85 feat(categories): prove introduction rule for equivalences 2015-11-08 14:04:58 -08:00
Floris van Doorn
448178a045 feat(category.functor2): prove that the category of functors is complete and cocomplete if the codomain is 2015-11-08 14:04:58 -08:00
Leonardo de Moura
50186e2db3 feat(library/class_instance_resolution): add old type class resolution procedure back to be able to compile HoTT library 2015-11-08 14:04:58 -08:00
Leonardo de Moura
d1e111fd6c fix(hott,frontends/lean,library,library/tactic): make sure we can still compile the HoTT library 2015-11-08 14:04:55 -08:00
Leonardo de Moura
8ee214f133 checkpoint: new numeral encoding 2015-11-08 14:04:55 -08:00
Leonardo de Moura
744d1cba3d feat(library,hott,frontends/lean): avoid keywords with hyphen 2015-11-08 14:04:54 -08:00
Floris van Doorn
115dedbd1c fix(hott): notation spacing and markdown files 2015-10-02 16:26:10 -07:00
Leonardo de Moura
ede23a3267 feat(hott,library): add additional spacing hints 2015-09-30 17:41:44 -07:00
Floris van Doorn
3c4c722afd feat(hott): port more from chapters 4 and 6 of the book 2015-09-28 09:09:21 -07:00
Ulrik Buchholtz
2c22501084 feat(hott): prove HoTT book Theorem 4.7.6 2015-09-28 09:09:21 -07:00
Leonardo de Moura
33f46fd137 feat(library/blast): parse blast tactic and invoke stub 2015-09-25 12:45:16 -07:00
Floris van Doorn
e84b22864f feat(hott): various changes in the HoTT library 2015-09-11 23:35:21 -07:00
Floris van Doorn
1a3b363467 feat(category): prove that the yoneda embedding is an embedding 2015-09-11 23:35:21 -07:00
Floris van Doorn
fd89aa77a3 feat(hott): prove Yoneda lemma 2015-09-11 23:35:21 -07:00
Floris van Doorn
817d691237 fix(hott/init/nat): also define ℕ in the top-level in HoTT 2015-09-11 23:35:21 -07:00
Floris van Doorn
a8964adb9c fix(hott): make sure there are no sorry's visible 2015-09-01 15:17:46 -07:00
Floris van Doorn
7e52c49dce feat(hott): many changes is the HoTT library
Prove that 'is_left_adjoint F' is a mere proposition, although this proof is commented out because it takes ~10 seconds
2015-09-01 15:17:46 -07:00
Floris van Doorn
f4892db432 feat(types.trunc): prove the principle of unique choice 2015-09-01 15:17:46 -07:00
Floris van Doorn
c24fd508b6 feat(hott/types): add more about pathovers in type constructors, prove that double negation elimination doesn't hold universally 2015-09-01 15:17:46 -07:00
Floris van Doorn
cfddfdfa84 feat(hott/types): add characterization of lift, prove that Type.{u} is not an hset 2015-09-01 15:17:46 -07:00
Leonardo de Moura
582dbecfd0 feat(library,hott): add notation T1 : T2 as syntax sugar for (focus (T1; all_goals T2))
closes #775
2015-08-08 10:16:25 -07:00
Floris van Doorn
e51ba09a27 feat(hott): add types.sum, greatly expand types.prod, minor changes in types.sigma and types.pi 2015-08-07 13:34:41 -07:00
Floris van Doorn
189293b5d4 fix(init.path): rename transport_compose to tr_compose 2015-08-07 13:34:41 -07:00
Floris van Doorn
d111607890 feat(hott): add file which maps sections of the HoTT book to the HoTT library 2015-08-07 13:34:41 -07:00
Floris van Doorn
f3ba81a19d fix(init.path): a couple of small simplifications 2015-08-07 13:34:40 -07:00
Floris van Doorn
0ec525a8ee feat(two_quotient): finish proof of elim_incl2 2015-08-07 13:34:40 -07:00
Floris van Doorn
11b1f416f6 feat(nat): add unfold attributes to add, mul, sub and of_num in namespace nat_esimp in both libraries 2015-08-04 13:23:20 +02:00
Floris van Doorn
747d12a385 feat(hott): prove characterization of a pathover in a pathover-type 2015-08-04 13:01:12 +02:00
Floris van Doorn
7a780b1b60 feat(hott): various minor changes in the HoTT library 2015-08-04 13:01:11 +02:00
Leonardo de Moura
b3cd3efbb4 refactor(hott): fix "sorry"s at int/basic.hlean, and comment the remaining "sorry"s 2015-07-27 08:34:11 -07:00
Leonardo de Moura
267545ca0c feat(frontends/lean): parse 'with_options' tactical
see issue #492
2015-07-13 19:13:41 -04:00
Leonardo de Moura
6ab5cf214c feat(library,hott): add simp tactic reference 2015-07-13 18:01:40 -04:00
Leonardo de Moura
4b1b3e277f feat(frontends/lean): rename '[unfold-c]' to '[unfold]' and '[unfold-f]' to '[unfold-full]'
see issue #693
2015-07-07 16:37:06 -07:00
Leonardo de Moura
de90926eed refactor(hott): adjust HoTT library to new support for projections 2015-06-26 17:18:30 -07:00
Floris van Doorn
df3ce2b00b feat(types/eq2): add theorem about eq_of_con_inv_eq_idp 2015-06-25 22:31:41 -04:00
Floris van Doorn
ea0f57aef5 feat(hott): various clean-up and small additions 2015-06-25 22:31:40 -04:00
Floris van Doorn
2748525c21 feat(hit/susp): finish the proof that loop space is adjoint to the suspension 2015-06-25 22:31:40 -04:00
Floris van Doorn
124c9d3d8a feat(hott): various cleanup and fixes, rename \~ to ~, expand types.pointed 2015-06-25 22:31:40 -04:00
Floris van Doorn
ac03bf7a4a feat(hott/nat): prove computation rule for cases by inequality 2015-06-25 22:31:40 -04:00
Floris van Doorn
0b9c8e14a4 fix(*/init/nat): fix occurrences where both theorem and [unfold-c] were used 2015-06-25 22:31:40 -04:00
Floris van Doorn
fa1979c128 feat(datatypes): let the type of unit be the lowest non-Prop universe
The definitional package (brec_on and cases_on) now use poly_unit instead of unit

closes #698
2015-06-25 17:33:46 -07:00
Leonardo de Moura
a4c0699e81 feat(library/tactic/constructor_tactic): restore 'constructor' tactic old semantics, add 'fconstructor' tactic
See issue #676

Add new test demonstrating why it is useful to have the old semantics
for 'constructor'
2015-06-17 23:48:54 -07:00
Jeremy Avigad
6b36076ab5 feat({library,hott}/init/nat): add sub_le_succ 2015-06-15 22:53:11 +10:00
Leonardo de Moura
4b91cfccff feat(frontends/lean/builtin_exprs): make notation ( e : T ) builtin
In the previous approach, the following (definitionally equal) term was being generated

       (fun (A : Type) (a : A), a) T e
2015-06-10 14:52:59 -07:00
Floris van Doorn
7f5caab694 feat(nat): redefine le and lt in the standard library 2015-06-04 20:14:13 -04:00
Floris van Doorn
ff01774fd7 renaming(hit): rename type_quotient to quotient, and quotient to set_quotient
This renaming is because type_quotient is a nonstandard name.  I've had a discussion with Egbert
Rijke, Steve Awodey and Dan Licata, and the consensus for a better name was 'quotient'.  I had to
make changes in src/kernel/hits/hits.cpp, I renamed g_type_quotient* by g_hit_quotient* (to avoid
name clash the standard library quotient, although I don't know whether that name clash would
matter).
2015-06-04 20:14:13 -04:00
Floris van Doorn
876aa20ad6 feat(hott): Port remainder of §6.3 and §7.2 from the HoTT book
Also prove a theorem similar to Lemma 7.3.1

There are still some sorry's in hit.suspension
2015-06-04 20:14:12 -04:00
Floris van Doorn
883b4fedb9 feat(hott): start with proof to characterize (is_trunc n A) using iterated loop spaces 2015-06-04 20:14:12 -04:00
Floris van Doorn
4117455e97 feat(hott): redefine nat.le and nat.lt
also some minor modifications in other files
2015-06-04 20:14:12 -04:00
Floris van Doorn
d4a991ef84 feat(hott): define cubes and cubeovers 2015-06-04 20:13:53 -04:00
Leonardo de Moura
ca110012d8 feat(library/tactic): automate "generalize-intro-induction/cases" idiom
closes #645
2015-05-30 21:57:28 -07:00
Leonardo de Moura
6f6848968d feat(frontends/lean/coercion_elaborator): "coercion lifting" for backtracking case
closes #252
2015-05-30 16:44:26 -07:00
Leonardo de Moura
00232e70d6 feat(hott,library): auxiliary theorems for simplifier 2015-05-27 16:35:56 -07:00
Leonardo de Moura
85409a59d3 feat(library/tactic/rewrite_tactic): add xrewrite and krewrite tactic variants
closes #511
2015-05-27 16:32:43 -07:00
Leonardo de Moura
dc6411b903 feat(library/inductive_unifier_plugin): restrict rule that was generating non-terminating behavior
see issue #632
2015-05-27 14:41:12 -07:00
Floris van Doorn
43bcdd7994 feat(hott): remove sorry's in circle.hlean, characterize pathovers in degenerate pi's 2015-05-26 21:37:01 -07:00
Floris van Doorn
c64d73aae4 feat(types.nat): prove that inequalities on nat are mere propositions
Also some small changes in various other locations
2015-05-26 21:37:01 -07:00
Floris van Doorn
4a29f4bdd4 feat(types): incorporate pathovers in the files of the types folder
Conflicts:
	hott/cubical/pathover.hlean
2015-05-26 21:37:01 -07:00
Floris van Doorn
0b12d51b25 feat(hott): use pathovers in all the recursors of hits
move pathover file to the init folder
2015-05-26 21:37:01 -07:00
Floris van Doorn
54ed8a8e76 feat(hott): small changes in init and category 2015-05-26 21:37:01 -07:00
Floris van Doorn
50290fb81c feat(hott): add recursor attribute to hits
recursor attribute is added to both the dependent and nondependent elimination, is such a way that the dependent elimination is used by default
2015-05-26 21:37:01 -07:00
Floris van Doorn
8056f326d7 feat(reserved_notation): make is_typeof parsing-only, add ^ to HoTT 2015-05-26 21:37:01 -07:00
Jeremy Avigad
716da2488b fix(hott/*.md,library/*.md): use the word 'file' instead of 'module' 2015-05-25 16:50:42 -07:00
Leonardo de Moura
d0987eb3ac feat(library/tactic): add 'subtvars' tactic 2015-05-25 16:36:44 -07:00
Jeremy Avigad
33214f0895 refactor(hott/*): remove 'Module:' lines 2015-05-23 20:52:58 +10:00
Leonardo de Moura
e1c2340db2 fix(frontends/lean): consistent behavior for protected declarations
see https://github.com/leanprover/lean/issues/604#issuecomment-103265608

closes #609
2015-05-18 22:35:18 -07:00
Floris van Doorn
c430d1d5ba feat(category.constructions): define comma category 2015-05-18 15:59:55 -07:00
Floris van Doorn
2144036cdb feat(hott.circle): prove that the fundamental group of the circle is equal to the integers, as groups
Also many minor fixes at various places
2015-05-18 15:59:55 -07:00