History log of /seL4-l4v-master/l4v/isabelle/src/HOL/Tools/BNF/bnf_fp_def_sugar.ML
Revision Date Author Comments
# 026d96d6 02-Dec-2019 wenzelm <none@none>

proper spec_rule name via naming/binding/Morphism.binding;


# 44a31568 29-Nov-2019 wenzelm <none@none>

more informative spec rules: optional name;
clarified signature;
more thorough treatment of Thm.trim_context vs. Thm.transfer;


# 14c7fb8f 09-Aug-2019 wenzelm <none@none>

formal position for PThm nodes;


# d948ca9f 26-Mar-2019 wenzelm <none@none>

more informative Spec_Rules.Equational, notably primrec argument types;


# ed7a971e 05-Jan-2019 wenzelm <none@none>

isabelle update -u control_cartouches;


# a4bab154 04-Jan-2019 wenzelm <none@none>

isabelle update -u control_cartouches;


# fcc9e542 23-Feb-2018 wenzelm <none@none>

added HOLogic.mk_obj_eq convenience and eliminated some clones;


# da18404a 22-Feb-2018 wenzelm <none@none>

tuned;


# 9322bd71 02-Jul-2017 haftmann <none@none>

proper concept of code declaration wrt. atomicity and Isar declarations

--HG--
extra : rebase_source : adb08da85e01b6c9c81d471a0d8e7ebb68d7e472


# 219bfdf8 22-Dec-2016 blanchet <none@none>

generalized generation of coinduction goal (towards nonuniform codatatypes)


# eeeee96a 22-Dec-2016 blanchet <none@none>

export ML functions (towards nonuniform codatatypes) + signature tuning


# a972b36d 20-Dec-2016 blanchet <none@none>

generalized code (towards nonuniform datatypes)


# 659a2dbd 20-Dec-2016 blanchet <none@none>

generalized ML function (towards nonuniform datatypes)


# 8c45ffcd 21-Dec-2016 blanchet <none@none>

generalized ML function (towards nonuniform datatypes)


# b090623b 21-Dec-2016 blanchet <none@none>

renamed confusing variable names


# 76ac1415 16-Dec-2016 blanchet <none@none>

refactored induction principle generation code, for reuse for nonuniform datatypes


# 3be1e856 27-Oct-2016 blanchet <none@none>

tuning


# 1df1830f 27-Oct-2016 blanchet <none@none>

more uniform treatment of codatatype vs. datatype map and rel theorem generation (towards nonuniform codatatypes)


# 8aafd76b 26-Oct-2016 blanchet <none@none>

tuning


# 2c388eb7 06-Oct-2016 traytel <none@none>

less aggressive unfolding in tactic


# 268559be 13-Sep-2016 blanchet <none@none>

union associates to the left


# d945085c 12-Sep-2016 blanchet <none@none>

make (co)induct component of 'fp_sugar' optional, for the benefit of nonuniform (co)datatypes and other similar extensions


# b77bce63 12-Sep-2016 blanchet <none@none>

avoid warning triggered by code generator


# bd27a761 12-Sep-2016 blanchet <none@none>

prove 'set' property backward


# 63fa20eb 11-Sep-2016 blanchet <none@none>

generalized code towards nonuniform (co)datatypes


# e3d144da 11-Sep-2016 blanchet <none@none>

strengthened tactics


# a1eb81ce 11-Sep-2016 blanchet <none@none>

derive relator properties forward


# 257f9e69 11-Sep-2016 blanchet <none@none>

derive maps forward


# 15e43059 11-Sep-2016 blanchet <none@none>

tuning


# 8c4c500b 11-Sep-2016 blanchet <none@none>

tuning


# 14393da9 08-Sep-2016 blanchet <none@none>

made it easier to catch 'empty datatype' exception


# da13635f 08-Sep-2016 blanchet <none@none>

export ML functions


# 79f97a31 08-Sep-2016 blanchet <none@none>

tuning


# f38f998e 07-Sep-2016 blanchet <none@none>

tuning


# 2842edec 07-Sep-2016 blanchet <none@none>

exported ML functions + tuning


# baf09aac 07-Sep-2016 blanchet <none@none>

refactoring


# 058469cf 07-Sep-2016 blanchet <none@none>

refactoring


# 90c88247 07-Sep-2016 blanchet <none@none>

refactoring


# dc32db36 07-Sep-2016 blanchet <none@none>

tuned whitespace


# 6750f4ae 06-Sep-2016 blanchet <none@none>

export more ML functions


# 28ad8145 06-Sep-2016 blanchet <none@none>

generalized ML signature


# 25f52df5 06-Sep-2016 blanchet <none@none>

tuned ML signature


# 0e3f246a 05-Sep-2016 blanchet <none@none>

exported ML functions


# 3d9861ee 05-Sep-2016 blanchet <none@none>

export ML function + tuning


# fa204375 05-Sep-2016 blanchet <none@none>

export more ML functions


# 104eba6e 05-Sep-2016 blanchet <none@none>

export more ML functions


# f02fe845 13-Aug-2016 blanchet <none@none>

tuned ML


# 2d2d3564 26-Jul-2016 traytel <none@none>

honor sorts in (co)datatype declarations


# 2e392e73 06-Jun-2016 haftmann <none@none>

explicit tagging of code equations de-baroquifies interface

--HG--
extra : rebase_source : 1d83d31f669dc30b586df508a64fdc3a9e7b2655


# 237f0cff 02-Jun-2016 wenzelm <none@none>

eliminated pointless alias (no warning for duplicates);


# d5d790a2 25-Apr-2016 blanchet <none@none>

avoid duplicate mixfix messages in '(co)datatype' type name


# 6bed86f1 18-Apr-2016 wenzelm <none@none>

prefer internal attribute source;


# c4b0715f 27-Mar-2016 blanchet <none@none>

generalized ML function


# 204828b6 27-Mar-2016 blanchet <none@none>

generalized ML interface


# 5851429c 22-Mar-2016 blanchet <none@none>

better warning, with definitions in right order


# 4b4ae612 23-Feb-2016 blanchet <none@none>

refactoring


# 48f879b6 23-Feb-2016 blanchet <none@none>

tuning


# 11e3eaac 23-Feb-2016 blanchet <none@none>

tuning


# 97b25dd9 17-Feb-2016 blanchet <none@none>

making 'pred_inject' a first-class BNF citizen


# 6b18406f 16-Feb-2016 traytel <none@none>

make predicator a first-class bnf citizen


# 2971b896 15-Feb-2016 blanchet <none@none>

tuning


# 2514dd4c 15-Feb-2016 blanchet <none@none>

keep 'ctor_iff_dtor' theorem around in BNF FP database


# 09941e1d 14-Feb-2016 blanchet <none@none>

tuning


# c13a38f2 13-Jan-2016 blanchet <none@none>

generate stronger 'rel_(co)induct' and 'coinduct' principles for mutually (co)recursive (co)datatypes


# 4216bc36 07-Jan-2016 wenzelm <none@none>

more uniform treatment of package internals;


# 591a7bfe 01-Dec-2015 blanchet <none@none>

tuned whitespace


# 78e3cdc9 02-Nov-2015 blanchet <none@none>

don't pollute local theory with needless names


# 16fd80ec 08-Oct-2015 blanchet <none@none>

tuning


# b22e4c0f 07-Oct-2015 blanchet <none@none>

disable generation of 'case_transfer' for 'nibble', due to quadratic proof -- to make 'HOL-Proofs' happier


# 0543912a 06-Oct-2015 blanchet <none@none>

avoid unsound 'nitpick_simp' attribute on nonterminating, nonproductive equations


# bcc1a605 06-Oct-2015 blanchet <none@none>

generate 'case_transfer' unconditionally


# e5517855 05-Oct-2015 traytel <none@none>

collect the names from goals in favor of fragile exports


# 06b6c5f0 01-Oct-2015 blanchet <none@none>

export '_cmd' functions


# 6633bf2a 23-Sep-2015 wenzelm <none@none>

tuned signature;


# 13bb5ba7 22-Sep-2015 wenzelm <none@none>

HOL typedef with explicit dependency checks according to Ondrey Kuncar, 07-Jul-2015, 16-Jul-2015, 30-Jul-2015;
defs.ML: track dependencies also for type constructors;
typedef.ML: add type defined by typedef to dependencies, Abs and Rep now depend on the type;
Pure types and typedecls are final -- no dependencies;


# 1ae750a8 04-Sep-2015 wenzelm <none@none>

close derivation *before* splitting conjuncts, like Goal.prove_common (see also 757cad5a3fe9) -- potential improvement of performance;


# 78d8b09f 03-Sep-2015 traytel <none@none>

use open/close_target rather than Local_Theory.restore to get polymorphic definitions;


# cb97119b 27-Jul-2015 wenzelm <none@none>

tuned signature;


# 839d9ae3 26-Jul-2015 wenzelm <none@none>

updated to infer_instantiate;


# 46ef1e1e 16-Jul-2015 blanchet <none@none>

tuning


# dbbe37ca 15-Jul-2015 traytel <none@none>

{r,e,d,f}tac with proper context in BNF


# 00bb45b9 28-Apr-2015 blanchet <none@none>

tuning


# f64d293f 07-Apr-2015 blanchet <none@none>

generalized slightly


# 4aa541f4 06-Apr-2015 wenzelm <none@none>

@{command_spec} is superseded by @{command_keyword};


# b2fd0f75 31-Mar-2015 wenzelm <none@none>

more standard Long_Name operations;


# 03b64291 30-Mar-2015 wenzelm <none@none>

tuned signature;


# 955d0fc8 26-Mar-2015 blanchet <none@none>

store low-level (un)fold constants


# cd3872ba 26-Mar-2015 blanchet <none@none>

export more functions


# 9113f38b 24-Mar-2015 blanchet <none@none>

tuning


# 740a17d4 06-Mar-2015 wenzelm <none@none>

Thm.cterm_of and Thm.ctyp_of operate on local context;


# 34035ccd 04-Mar-2015 wenzelm <none@none>

tuned signature -- prefer qualified names;


# b7bf58e6 03-Mar-2015 traytel <none@none>

eliminated some clones of Proof_Context.cterm_of


# d9c8335a 05-Jan-2015 blanchet <none@none>

generate [code] only with 'code' plugin enabled


# ef71534e 04-Jan-2015 blanchet <none@none>

tuning


# 07a7056b 19-Dec-2014 desharna <none@none>

Add plugin to generate transfer theorem for primrec and primcorec


# 13ddea91 26-Nov-2014 wenzelm <none@none>

renamed "pairself" to "apply2", in accordance to @{apply 2};


# ea5a3e95 10-Nov-2014 desharna <none@none>

also generate '(co)rec_transfer' for (co)datatypes with 0 live type variables


# eb5e73fc 11-Nov-2014 desharna <none@none>

make 'rec_transfer' tactic more robust


# 4eae0352 10-Nov-2014 wenzelm <none@none>

proper context for assume_tac (atac remains as fall-back without context);


# c12ca051 07-Nov-2014 wenzelm <none@none>

plain value Keywords.keywords, which might be used outside theory for bootstrap purposes;
plain value Outer_Syntax within theory: parsing requires current theory context;
clarified name of Keyword.is_literal according to its semantics;
eliminated pointless type Keyword.T;
simplified @{command_spec};
clarified bootstrap keywords and syntax: take it as basis instead of side-branch;


# 9dec7d71 06-Nov-2014 desharna <none@none>

fix 'unfla' function


# 824744a2 21-Oct-2014 desharna <none@none>

generate 'map_o_corec' for (co)datatypes
* * *
document 'map_o_corec'


# 686351a9 21-Oct-2014 desharna <none@none>

move theorem 'rec_o_map'
* * *
move documentation of 'rec_o_map'


# f2bed2d2 21-Oct-2014 desharna <none@none>

warn for not fully mutually (co)recursive types


# edebfbee 16-Oct-2014 blanchet <none@none>

made SML/NJ happier


# f05f85f5 14-Oct-2014 desharna <none@none>

generate 'sel_transfer' for (co)datatypes


# 8f51507f 14-Oct-2014 desharna <none@none>

add 'kind' to 'cr_sugar'


# 5ae17a36 14-Oct-2014 desharna <none@none>

add 'fp_bnf' to 'bnf_sugar'


# 9c060c90 14-Oct-2014 desharna <none@none>

preserve the structure of 'set_intros' theorem in ML


# def076b7 14-Oct-2014 desharna <none@none>

preserve the structure of 'map_sel' theorem in ML


# 2be8af88 14-Oct-2014 desharna <none@none>

preserve the structure of 'set_sel' theorem in ML


# bb4c3636 13-Oct-2014 wenzelm <none@none>

Local_Interpretation is superseded by Plugin with formal Plugin_Name management, avoiding undeclared strings;


# cbfdc100 08-Oct-2014 wenzelm <none@none>

added parameterized ML antiquotations @{map N}, @{fold N}, @{fold_map N}, @{split_list N};


# cbc989cb 06-Oct-2014 desharna <none@none>

refactor 'map_sel_thms' and 'set_sel_thms'


# 9622cd51 06-Oct-2014 desharna <none@none>

rename 'xtor_rel_thms' to 'xtor_rels'


# 191e6485 06-Oct-2014 desharna <none@none>

rename 'xtor_set_thmss' to 'xtor_setss'


# 7d5fbd1c 06-Oct-2014 desharna <none@none>

rename 'xtor_map_thms' to 'xtor_maps'


# 9b27f050 06-Oct-2014 desharna <none@none>

rename one of the two 'rel_eq_thms' to 'rel_code_thms'


# 57c1cff0 06-Oct-2014 desharna <none@none>

rename 'xtor_co_rec_transfer_thms' to 'xtor_co_rec_transfers'


# c54f4f14 06-Oct-2014 desharna <none@none>

rename 'dtor_set_induct_thms' to 'dtor_set_inducts'


# 9665b67b 06-Oct-2014 desharna <none@none>

rename 'rel_xtor_co_induct_thm' to 'xtor_rel_co_induct'


# e364b08b 06-Oct-2014 desharna <none@none>

add 'set_inducts' to 'fp_sugar'


# 2cedfc03 06-Oct-2014 desharna <none@none>

add 'common_set_inducts' to 'fp_sugar'


# 467db70c 06-Oct-2014 desharna <none@none>

add 'rel_co_inducts' to 'fp_sugar'


# cadb7741 06-Oct-2014 desharna <none@none>

add 'common_rel_co_induct' to 'fp_sugar'


# d76bbcfd 06-Oct-2014 desharna <none@none>

add 'co_rec_transfers' to 'fp_sugar'


# 6d76dc50 06-Oct-2014 desharna <none@none>

add 'co_rec_disc_iffs' to 'fp_sugar'


# 8b25f959 06-Oct-2014 desharna <none@none>

add 'disc_transfers' to 'fp_sugar'


# b0fae040 06-Oct-2014 desharna <none@none>

add 'case_transfers' to 'fp_sugar'


# 3fbae9a8 06-Oct-2014 desharna <none@none>

add 'ctr_transfers' to 'fp_sugar'


# f5c26cc0 06-Oct-2014 desharna <none@none>

add 'set_cases' to 'fp_sugar'


# 30cc7146 06-Oct-2014 desharna <none@none>

add 'set_intros' to 'fp_sugar'


# b5244d83 06-Oct-2014 desharna <none@none>

add 'set_sels' to 'fp_sugar'


# 2ef889ae 06-Oct-2014 desharna <none@none>

add 'set_thms' to 'fp_sugar'


# 3d17f9a3 06-Oct-2014 desharna <none@none>

add 'rel_cases' to 'fp_sugar'


# 58470965 06-Oct-2014 desharna <none@none>

add 'rel_intros' to 'fp_sugar'


# 24e3ec36 06-Oct-2014 desharna <none@none>

add 'rel_sels' to 'fp_sugar'


# 00bc7453 06-Oct-2014 desharna <none@none>

add 'map_sels' to 'fp_sugar'


# 4a7808d9 06-Oct-2014 desharna <none@none>

add 'map_disc_iffs' to 'fp_sugar'


# 5bbf7250 01-Oct-2014 blanchet <none@none>

tuning


# 669d9d3b 29-Sep-2014 blanchet <none@none>

tuning


# 906e82c7 26-Sep-2014 desharna <none@none>

refactor fp_sugar move theorems


# 4434c5ed 26-Sep-2014 desharna <none@none>

refactor fp_sugar move theorems


# 9608121d 26-Sep-2014 desharna <none@none>

refactor fp_sugar move theorems


# a14f7fdb 26-Sep-2014 desharna <none@none>

refactor fp_sugar move theorems


# aa3cb8c8 26-Sep-2014 desharna <none@none>

refactor fp_sugar move theorems


# 50b15776 26-Sep-2014 desharna <none@none>

refactor fp_sugar with empty substructures


# 1049fe9a 26-Sep-2014 desharna <none@none>

add attribute 'case_names' to 'set_case'


# eb1ed55c 25-Sep-2014 desharna <none@none>

generate 'corec_transfer' for codatatypes


# e05be41f 25-Sep-2014 desharna <none@none>

generate 'rec_transfer' for datatypes


# 95e3c694 24-Sep-2014 blanchet <none@none>

avoid type variable name clash


# 28df263f 24-Sep-2014 blanchet <none@none>

tuning


# 997718be 16-Sep-2014 blanchet <none@none>

register 'prod' and 'sum' as datatypes, to allow N2M through them


# b372934b 15-Sep-2014 blanchet <none@none>

tuning


# 080b92c6 15-Sep-2014 blanchet <none@none>

refactoring


# 65642a5b 15-Sep-2014 blanchet <none@none>

tuning


# 2a9622ce 15-Sep-2014 blanchet <none@none>

tuning


# 6b777fb4 15-Sep-2014 blanchet <none@none>

generate 'code' attribute only if 'code' plugin is enabled


# 22f3dd87 13-Sep-2014 blanchet <none@none>

imported patch phantoms


# c1cf7621 12-Sep-2014 desharna <none@none>

refactor repeated terms in a single variable


# 10742fde 12-Sep-2014 desharna <none@none>

make 'ctr_transfer' tactic more robust


# bbf13194 12-Sep-2014 desharna <none@none>

make 'rel_sel' and 'map_sel' tactics more robust


# 9a4a064f 09-Sep-2014 blanchet <none@none>

tuning


# a61a03aa 09-Sep-2014 blanchet <none@none>

avoid duplicate case names


# abf5628f 09-Sep-2014 blanchet <none@none>

nicer case names in the N2M case, similar to those generated by the old package (e.g. 'Cons_tree' instead of just 'Cons')


# 02b2c624 09-Sep-2014 blanchet <none@none>

preserve case names in '(co)induct' theorems generated by prim(co)rec'


# fd6861bc 09-Sep-2014 blanchet <none@none>

set 'fundef_cong' attribute also for (co)datatypes with no live type variables


# 127f3858 09-Sep-2014 blanchet <none@none>

prevent infinite loop when type variables are of a non-'type' sort


# 377145ae 09-Sep-2014 blanchet <none@none>

tuned code


# dab46d6b 08-Sep-2014 blanchet <none@none>

honour sorts in N2M


# eb8f2765 08-Sep-2014 blanchet <none@none>

proper sort constraints in map and rel theorems


# d29de8b4 08-Sep-2014 blanchet <none@none>

made code work also in the presence of deads


# 53dc3f8b 08-Sep-2014 blanchet <none@none>

properly note theorems for split recursors


# 75fd5395 08-Sep-2014 blanchet <none@none>

extended 'datatype_compat' to generate the expected, old-style recursor in the presence of recursion through functions


# 9fd98ddb 08-Sep-2014 blanchet <none@none>

tuning


# 427172cf 08-Sep-2014 blanchet <none@none>

export one more ML function


# 241c5b8f 08-Sep-2014 blanchet <none@none>

tuning


# 6bd76c01 04-Sep-2014 blanchet <none@none>

pretend code generation is a ctr_sugar plugin


# cc5256c1 04-Sep-2014 blanchet <none@none>

added 'plugins' option to control which hooks are enabled


# c11a8aa4 04-Sep-2014 blanchet <none@none>

introduced mechanism to filter interpretations


# d36b3fcf 04-Sep-2014 blanchet <none@none>

fixed infinite loops in 'register' functions + more uniform API


# 625d35eb 04-Sep-2014 blanchet <none@none>

named interpretations


# 21ec0eae 04-Sep-2014 blanchet <none@none>

centralized and cleaned up naming handling


# a030c224 04-Sep-2014 blanchet <none@none>

tweaked setup for datatype realizer


# f4f86474 04-Sep-2014 blanchet <none@none>

moved code around


# ec4e6125 04-Sep-2014 blanchet <none@none>

tuned size function generation


# 3a5bbb8e 03-Sep-2014 blanchet <none@none>

introduced local interpretation mechanism for BNFs, to solve issues with datatypes in locales


# 87a971e8 03-Sep-2014 blanchet <none@none>

tuned BNF database handling


# 0a4b950c 02-Sep-2014 blanchet <none@none>

tuning


# 9c861e3b 01-Sep-2014 blanchet <none@none>

more compatibility between old- and new-style datatypes


# 812558c3 01-Sep-2014 blanchet <none@none>

added theory-based getters for convenience


# 978db45e 01-Sep-2014 blanchet <none@none>

made transfer functions slightly more general


# fb2f6a3a 01-Sep-2014 blanchet <none@none>

renamed modules defining old datatypes, as a step towards having 'datatype_new' take 'datatype's place

--HG--
rename : src/HOL/Datatype.thy => src/HOL/Old_Datatype.thy
rename : src/HOL/Tools/Function/size.ML => src/HOL/Tools/Function/old_size.ML
rename : src/HOL/Tools/Datatype/datatype.ML => src/HOL/Tools/Old_Datatype/old_datatype.ML
rename : src/HOL/Tools/Datatype/datatype_aux.ML => src/HOL/Tools/Old_Datatype/old_datatype_aux.ML
rename : src/HOL/Tools/Datatype/datatype_codegen.ML => src/HOL/Tools/Old_Datatype/old_datatype_codegen.ML
rename : src/HOL/Tools/Datatype/datatype_data.ML => src/HOL/Tools/Old_Datatype/old_datatype_data.ML
rename : src/HOL/Tools/Datatype/datatype_prop.ML => src/HOL/Tools/Old_Datatype/old_datatype_prop.ML
rename : src/HOL/Tools/Datatype/datatype_realizer.ML => src/HOL/Tools/Old_Datatype/old_datatype_realizer.ML
rename : src/HOL/Tools/Datatype/primrec.ML => src/HOL/Tools/Old_Datatype/old_primrec.ML
rename : src/HOL/Tools/Datatype/rep_datatype.ML => src/HOL/Tools/Old_Datatype/old_rep_datatype.ML


# 439a0059 01-Sep-2014 desharna <none@none>

generate 'rel_transfer' for BNFs


# 7666c0e4 29-Aug-2014 desharna <none@none>

generate 'disc_transfer' for (co)datatypes


# dffb56b9 29-Aug-2014 desharna <none@none>

generate 'case_transfer' for (co)datatypes


# c810fc8c 27-Aug-2014 blanchet <none@none>

removed not so interesting 'set_empty'


# d65030e5 19-Aug-2014 wenzelm <none@none>

tuned signature -- moved type src to Token, without aliases;


# 61a0a307 19-Aug-2014 desharna <none@none>

generate 'ctr_transfer' for (co)datatypes


# 3aeea22d 18-Aug-2014 blanchet <none@none>

set attributes on 'set_cases' theorem


# 6fb4e52a 18-Aug-2014 blanchet <none@none>

reordered some (co)datatype property names for more consistency


# 173fde0a 14-Aug-2014 desharna <none@none>

generate 'rel_map' theorem for BNFs


# 0d4c8935 12-Aug-2014 blanchet <none@none>

avoid needless (and wrong w.r.t. sorts) generation of type variables; tuned whitespaces;


# 31574ff5 11-Aug-2014 desharna <none@none>

generate 'set_cases' theorem for (co)datatypes


# 534babeb 11-Aug-2014 desharna <none@none>

generate 'set_intros' theorem for (co)datatypes


# ef2d5221 11-Aug-2014 traytel <none@none>

use Goal.prove_sorry instead of Goal.prove where possible (= no schematics in goal and tactic is expected to succeed)


# c96acc61 06-Aug-2014 blanchet <none@none>

generate nicer 'set' theorems for (co)datatypes


# 33c09681 30-Jul-2014 blanchet <none@none>

correctly resolve selector names in default value equations


# a1b49062 27-Jul-2014 desharna <none@none>

made tactic more robust w.r.t. dead variables; tuned;


# 7b8e65c1 25-Jul-2014 blanchet <none@none>

tuning


# 657102e8 24-Jul-2014 blanchet <none@none>

tuned code


# 8c308eea 23-Jul-2014 blanchet <none@none>

repaired named derivations


# 97fe0137 23-Jul-2014 blanchet <none@none>

use the noted theorem whenever possible, also in 'BNF_Def'


# 8f9d0c84 17-Jul-2014 desharna <none@none>

fix bug caused by bad context


# efd75a1e 17-Jul-2014 desharna <none@none>

add mk_Trueprop_mem utility function


# 2b38c5f0 16-Jul-2014 desharna <none@none>

refactor commonly used functions


# 0352f504 16-Jul-2014 desharna <none@none>

generate 'rel_sel' theorem for (co)datatypes


# e1bd1185 16-Jul-2014 desharna <none@none>

fix rel_cases


# 3d51a59e 14-Jul-2014 blanchet <none@none>

took out 'rel_cases' for now because of failing tactic


# 0bbf7ec1 09-Jul-2014 blanchet <none@none>

made SML/NJ happier


# 793f1234 07-Jul-2014 desharna <none@none>

generate 'rel_cases' theorem for (co)datatypes


# 109d7354 03-Jul-2014 desharna <none@none>

generate 'rel_intros' theorem for (co)datatypes


# 34b0a47c 02-Jul-2014 desharna <none@none>

generate 'corec_code' theorem for codatatypes


# c335096a 01-Jul-2014 desharna <none@none>

generate 'rel_induct' theorem for datatypes


# c1bd04e5 27-Jun-2014 blanchet <none@none>

compile


# 6f5ea271 27-Jun-2014 blanchet <none@none>

tuned variable names


# 7bbce892 30-Jul-2014 desharna <none@none>

generate 'set_induct' theorem for codatatypes


# 020ff44f 24-Jun-2014 desharna <none@none>

tune the implementation of 'rel_coinduct'


# 104e77f3 24-Jun-2014 desharna <none@none>

generate 'rel_coinduct' theorem for codatatypes


# a0ad2713 24-Jun-2014 desharna <none@none>

generate 'rel_coinduct0' theorem for codatatypes


# 7c886e63 18-Jun-2014 blanchet <none@none>

made tactic more robust in the face of 'primcorec' specifications containing 'case_sum'


# 1ddd04cf 16-Jun-2014 blanchet <none@none>

fixed postprocessing of 'coinduct' formula to obtain right property format (without needless hypotheses)


# 42cd340d 10-Jun-2014 blanchet <none@none>

changed syntax of map: and rel: arguments to BNF-based datatypes


# ce4b8eee 10-Jun-2014 blanchet <none@none>

tuning


# ed20523b 09-Jun-2014 blanchet <none@none>

use 'where' clause for selector default value syntax


# cca982c5 10-Jun-2014 blanchet <none@none>

tuning


# 112d96ec 02-Jun-2014 desharna <none@none>

generate 'sel_set' theorem for (co)datatypes


# 517cc9da 27-May-2014 blanchet <none@none>

don't generate discriminators and selectors for 'datatype_new' unless the user asked for it


# 312f030c 26-May-2014 blanchet <none@none>

got rid of '=:' squiggly


# 440f2078 21-May-2014 desharna <none@none>

generate 'sel_map[simp]' theorem for (co)datatypes and tuning 'disc_map_iff'


# d90e6fd8 15-May-2014 desharna <none@none>

generate 'disc_map_iff[simp]' theorem for (co)datatypes


# 2b30935a 15-May-2014 blanchet <none@none>

proper handling of 'ctor_dtor' for mutual corecursive cases where not all type variables are present in all low-level constructors (cf. 'coind_wit1' etc. in 'Misc_Codatatypes.thy')


# 09078cfa 12-May-2014 desharna <none@none>

generate 'set_empty' theorem for BNFs


# 9e80e60b 27-Apr-2014 blanchet <none@none>

restored naming trick


# 1c1981c6 27-Apr-2014 blanchet <none@none>

cleaner 'rel_inject' theorems


# 7369466c 23-Apr-2014 blanchet <none@none>

made SML/NJ happier


# aea2cf85 23-Apr-2014 blanchet <none@none>

localize new size function generation code


# ebf08b80 23-Apr-2014 blanchet <none@none>

no need to make 'size' generation an interpretation -- overkill


# 173cad60 23-Apr-2014 blanchet <none@none>

manual merge + added 'rel_distincts' field to record for symmetry


# 90e83a10 23-Apr-2014 blanchet <none@none>

reverted rb458558cbcc2 -- better to keep 'case' and 'rec' distinct, otherwise we lose the connection between 'ctor_rec' (the low-level recursor) and 'rec'


# 72596a3c 23-Apr-2014 blanchet <none@none>

generate 'rec_o_map' and 'size_o_map' in size extension


# df15a7e7 23-Apr-2014 blanchet <none@none>

generate size instances for new-style datatypes


# b915e4a4 23-Apr-2014 blanchet <none@none>

invoke 'fp_sugar' interpretation hook on mutually recursive clique


# 88c45359 10-Apr-2014 kuncar <none@none>

revert idiomatic handling of namings from 5a93b8f928a2 because in combination with Named_Target.theory_init global names are sometimes created


# 6a76ebd9 10-Apr-2014 kuncar <none@none>

don't forget to init Interpretation and transfer theorems in the interpretation hook


# 8d0ad389 10-Apr-2014 kuncar <none@none>

export theorems


# e0a8605f 03-Apr-2014 blanchet <none@none>

added same idiomatic handling of namings for Ctr_Sugar/BNF-related interpretation hooks as for typedef and (old-style) datatypes


# 19e8f7ca 01-Apr-2014 blanchet <none@none>

added new-style (co)datatype interpretation hook


# 3c4f4261 22-Mar-2014 wenzelm <none@none>

more antiquotations;


# 360c732d 11-Mar-2014 blanchet <none@none>

added missing theorems to unfolding set


# 147d4ad6 07-Mar-2014 blanchet <none@none>

tuning


# d815b696 06-Mar-2014 blanchet <none@none>

balance tuples that represent curried functions


# 11682cfd 04-Mar-2014 blanchet <none@none>

register relator equations as spec rules only for datatypes -- for codatatypes they underspecify the function and are therefore dangerous (e.g. to Nitpick)


# 908441e2 04-Mar-2014 blanchet <none@none>

renamed a pair of low-level theorems to have c/dtor in their names (like the others)


# 35d9dd12 02-Mar-2014 blanchet <none@none>

removed (co)iterators from documentation


# c39b02f9 02-Mar-2014 blanchet <none@none>

rationalized internals


# 5f1d2990 02-Mar-2014 blanchet <none@none>

rationalized internals


# a350d601 02-Mar-2014 blanchet <none@none>

rationalized internals


# da5d3a70 02-Mar-2014 blanchet <none@none>

rationalized internals


# 2e7739d0 02-Mar-2014 blanchet <none@none>

rationalized internals


# b29ffe0e 02-Mar-2014 blanchet <none@none>

rationalize internals


# 6c7be66c 02-Mar-2014 blanchet <none@none>

optimized simple non-recursive datatypes by reusing 'case' for 'rec' constant


# 9c62b91a 02-Mar-2014 blanchet <none@none>

compile


# 209f60a6 02-Mar-2014 blanchet <none@none>

repaired argument list to corecursor


# a3a1f899 02-Mar-2014 blanchet <none@none>

got rid of automatically generated fold constant and theorems (to reduce overhead)


# dd1a06aa 25-Feb-2014 traytel <none@none>

joint work with blanchet: intermediate typedef for the input to fp-operations


# ae64540a 27-Feb-2014 blanchet <none@none>

correct most general type for mutual recursion when several identical types are involved


# 2f1f0a53 23-Feb-2014 blanchet <none@none>

added explicit killing


# 6b413446 23-Feb-2014 blanchet <none@none>

more precise error message


# dec58eb7 23-Feb-2014 blanchet <none@none>

reuse same parser for '(co)datatype(_new)' as for 'bnf_decl'


# 04523a1c 19-Feb-2014 blanchet <none@none>

moved 'primrec' up (for real this time) and removed temporary 'old_primrec'


# 1770bd13 19-Feb-2014 blanchet <none@none>

tuning


# efebaf05 18-Feb-2014 blanchet <none@none>

prepare two-stage 'primrec' setup


# e9c8b8d7 18-Feb-2014 blanchet <none@none>

tuning


# 8d680255 17-Feb-2014 blanchet <none@none>

simplified data structure by reducing the incidence of clumsy indices


# 99807201 17-Feb-2014 blanchet <none@none>

name derivations in 'primrec' for code extraction from proof terms


# 2f309df2 14-Feb-2014 blanchet <none@none>

generate proper 'DtRec' indices in 'datatype_new_compat' for the case where some types are duplicated


# dabb17d7 14-Feb-2014 blanchet <none@none>

tuned code to allow mutualized corecursion through different functions with the same target type


# 0ba161cf 14-Feb-2014 blanchet <none@none>

allow different functions to recurse on the same type, like in the old package


# 2da87f73 13-Feb-2014 blanchet <none@none>

more precise spec rules for selectors


# 8e6ecc59 13-Feb-2014 blanchet <none@none>

aligned the syntax for 'free_constructors' on the 'datatype_new' and 'codatatype' syntax


# 1ae6608b 13-Feb-2014 blanchet <none@none>

renamed 'wrap_free_constructors' to 'free_constructors' (cf. 'functor', 'bnf', etc.)


# df2193a1 13-Feb-2014 blanchet <none@none>

register 'Spec_Rules' for new-style (co)datatypes


# f8a77a2c 12-Feb-2014 blanchet <none@none>

iteration n in the 'default' vs. 'update_new' vs. 'update' saga -- 'update' makes sense now that we honor the canonical order on 'merge' (as opposed to raising 'DUP')


# 63970edd 12-Feb-2014 blanchet <none@none>

renamed '{prod,sum,bool,unit}_case' to 'case_...'


# dea2cf15 12-Feb-2014 blanchet <none@none>

killed 'rep_compat' option


# fff4f229 12-Feb-2014 blanchet <none@none>

made 'ctr_sugar' more friendly to the 'datatype_realizer'
* * *
reverted changes to 'datatype_realizer.ML'


# 2e6f9ae6 12-Feb-2014 blanchet <none@none>

generate 'fundec_cong' attribute for new-style (co)datatypes
* * *
compile


# 34f4cd23 12-Feb-2014 blanchet <none@none>

more liberal merging of BNFs and constructor sugar
* * *
make sure that the cache doesn't produce 'DUP's


# d45839cf 07-Feb-2014 blanchet <none@none>

reverted a87e49f4336d -- overwriting of data entries yields to merge problems later


# 0333edae 06-Feb-2014 blanchet <none@none>

allow multiple registration of the same type, the last wins


# c0de7553 05-Feb-2014 blanchet <none@none>

tuning


# a054fc0f 21-Jan-2014 blanchet <none@none>

made SML/NJ happier


# 06fce64d 21-Jan-2014 blanchet <none@none>

made SML/NJ happier


# e6c141bc 20-Jan-2014 blanchet <none@none>

removed dependency of BNF package on Nitpick


# e8e169dd 20-Jan-2014 blanchet <none@none>

adjusted comments


# a0868967 20-Jan-2014 blanchet <none@none>

avoid nested 'Tools' directories

--HG--
rename : src/HOL/Tools/BNF/Tools/bnf_comp.ML => src/HOL/Tools/BNF/bnf_comp.ML
rename : src/HOL/Tools/BNF/Tools/bnf_comp_tactics.ML => src/HOL/Tools/BNF/bnf_comp_tactics.ML
rename : src/HOL/Tools/BNF/Tools/bnf_def.ML => src/HOL/Tools/BNF/bnf_def.ML
rename : src/HOL/Tools/BNF/Tools/bnf_def_tactics.ML => src/HOL/Tools/BNF/bnf_def_tactics.ML
rename : src/HOL/Tools/BNF/Tools/bnf_fp_def_sugar.ML => src/HOL/Tools/BNF/bnf_fp_def_sugar.ML
rename : src/HOL/Tools/BNF/Tools/bnf_fp_def_sugar_tactics.ML => src/HOL/Tools/BNF/bnf_fp_def_sugar_tactics.ML
rename : src/HOL/Tools/BNF/Tools/bnf_fp_n2m.ML => src/HOL/Tools/BNF/bnf_fp_n2m.ML
rename : src/HOL/Tools/BNF/Tools/bnf_fp_n2m_sugar.ML => src/HOL/Tools/BNF/bnf_fp_n2m_sugar.ML
rename : src/HOL/Tools/BNF/Tools/bnf_fp_n2m_tactics.ML => src/HOL/Tools/BNF/bnf_fp_n2m_tactics.ML
rename : src/HOL/Tools/BNF/Tools/bnf_fp_rec_sugar_util.ML => src/HOL/Tools/BNF/bnf_fp_rec_sugar_util.ML
rename : src/HOL/Tools/BNF/Tools/bnf_fp_util.ML => src/HOL/Tools/BNF/bnf_fp_util.ML
rename : src/HOL/Tools/BNF/Tools/bnf_gfp.ML => src/HOL/Tools/BNF/bnf_gfp.ML
rename : src/HOL/Tools/BNF/Tools/bnf_gfp_rec_sugar.ML => src/HOL/Tools/BNF/bnf_gfp_rec_sugar.ML
rename : src/HOL/Tools/BNF/Tools/bnf_gfp_rec_sugar_tactics.ML => src/HOL/Tools/BNF/bnf_gfp_rec_sugar_tactics.ML
rename : src/HOL/Tools/BNF/Tools/bnf_gfp_tactics.ML => src/HOL/Tools/BNF/bnf_gfp_tactics.ML
rename : src/HOL/Tools/BNF/Tools/bnf_gfp_util.ML => src/HOL/Tools/BNF/bnf_gfp_util.ML
rename : src/HOL/Tools/BNF/Tools/bnf_lfp.ML => src/HOL/Tools/BNF/bnf_lfp.ML
rename : src/HOL/Tools/BNF/Tools/bnf_lfp_compat.ML => src/HOL/Tools/BNF/bnf_lfp_compat.ML
rename : src/HOL/Tools/BNF/Tools/bnf_lfp_rec_sugar.ML => src/HOL/Tools/BNF/bnf_lfp_rec_sugar.ML
rename : src/HOL/Tools/BNF/Tools/bnf_lfp_tactics.ML => src/HOL/Tools/BNF/bnf_lfp_tactics.ML
rename : src/HOL/Tools/BNF/Tools/bnf_lfp_util.ML => src/HOL/Tools/BNF/bnf_lfp_util.ML
rename : src/HOL/Tools/BNF/Tools/bnf_tactics.ML => src/HOL/Tools/BNF/bnf_tactics.ML
rename : src/HOL/Tools/BNF/Tools/bnf_util.ML => src/HOL/Tools/BNF/bnf_util.ML