# Global Index

`*`, 3.1.2, 3.2.2 `+`, 3.1.2, 3.2.2 `-`, 3.2.2 2, 7.10.3 `;`, 7.13.6 `;[...``|``...``|``...]`, 7.13.7 `?`, 5.7.3 `?`, 7.2.2 `&`, 3.1.3 `{A}+{B}`, 3.1.3 `{x:A & (P x)}`, 3.1.3 {x:A | (P x)}, 3.1.3 |, 3.1.3 `A*B`, 3.1.2 `A+{B}`, 3.1.3 `A+B`, 3.1.2 `Abort`, 6.1.5 Absolute names, 2.6 `Abstract`, 7.13.12 Abstract syntax tree, 9.1 `Absurd`, 7.4.1 `Acc`, 3.1.5 `Acc_inv`, 3.1.5 `Acc_rec`, 3.1.5 `Add Abstract Ring`, 18.5 `Add Abstract Semi Ring`, 18.5 `Add Field`, 7.11.9 `Add LoadPath`, 5.5.3 `Add ML Path`, 5.5.7 `Add Morphism`, 19.3 `Add Printing If` ident, 2.2.4 `Add Printing Let` ident, 2.2.4 `Add Rec LoadPath`, 5.5.4 `Add Rec ML Path`, 5.5.8 `Add Ring`, 7.11.7, 18.5 `Add Semi Ring`, 18.5 `Add Semi Ring`, 7.11.7 `Add Setoid`, 19.2 `All`, 3.1.1 `AllT`, 3.1.6 `Apply`, 7.3.6 `Apply ... with`, 7.3.6 Arithmetical notations, 3.2.2 Arity, 4.5.3 AST, 9.1 AST patterns, 9.1 `Assert`, 7.3.8 `Assumption`, 7.3.1 `Auto`, 7.11.1 `AutoRewrite`, 7.11.11 `Axiom`, 1.3.1 abstractions, 1.2.5 `absurd`, 3.1.1 `absurd_set`, 3.1.3 `all`, 3.1.1 `allT`, 3.1.6 `and`, 3.1.1 `and_rec`, 3.1.3 applications, 1.2.7 `Back`, 5.6.2 `Bad Magic Number`, 5.4.2 `Begin Silent`, 5.8.3 Binding list, 7.3.11 b-reduction, 4.3, 4.3 `bool`, 3.1.2 `bool_choice`, 3.1.3 byte-code, 11.1 Calculus of (Co)Inductive Constructions, 4, 4 `Canonical Structure`, 2.7.3 `Case`, 7.7.2 `Case ... with`, 7.7.2 `Cases`, 13 `Cases...of...end`, 1.2.9, 2.2, 4.5.4 `Cbv`, 7.5.1 `Cd`, 5.5.2 `Change`, 7.3.10 `Change ... in`, 7.3.10 `Chapter`, 2.4.1 `Check`, 5.2.1 `Choice`, 3.1.3 `Choice2`, 3.1.3 CIC, 4 `Clear`, 7.3.2 `ClearBody`, 7.3.2 `Coercion`, 14.6.1, 14.6.1 `Coercion Local`, 14.6.1, 14.6.1 Coercions, 2.8 and records, 14.9 and sections, 14.10 classes, 14.2 FUNCLASS, 14.3 identity, 14.4 inheritance graph, 14.5 presentation, 14 SORTCLASS, 14.3 `CoFixpoint`, 1.3.4 `CoInductive`, 1.3.3 Comments, 1.1 `Compare`, 7.9.2 Compiled files, 5.4 `Compute`, 7.5.1 Connectives, 3.1.1 Constant, 1.3.2 `Constructor`, 7.6.1 `Constructor ... with`, 7.6.1 Context, 4.2 `Contradiction`, 7.4.2 Contributions, 3.3 Conversion rules, 4.3 Conversion tactics, 7.5 `coqdep`, 12.2 `coq_Makefile`, 12.3 `coqmktop`, 12.1 `coq-tex`, 12.4.1 `coqweb`, 12.4.2 `Correctness`, 16 `Cut`, 7.3.8 `CutRewrite`, 7.8.2 case, 9.2.3 `congr_eqT`, 3.1.6 `conj`, 3.1.1 `coqc`, 11 `coqtop`, 11 Datatypes, 3.1.2 Debugger, 12.1 `Decide Equality`, 7.9.1 Declarations, 1.3.1 `Declare ML Module`, 5.4.4 `Decompose`, 7.7.5 `Decompose Record`, 7.7.5 `Decompose Sum`, 7.7.5 `Defined`, 1.3.5, 6.1.2 `Definition`, 1.3.2, 6.1.3 Definitions, 1.3.2 Dependencies, 12.2 `Dependent Inversion`, 7.10.1 `Dependent Inversion ... with`, 7.10.1 `Dependent Inversion_clear`, 7.10.1 `Dependent Inversion_clear ... with`, 7.10.1 `Dependent Rewrite ->`, 7.9.6 `Dependent Rewrite <-`, 7.9.6 `Derive Dependent Inversion`, 7.10.2 `Derive Dependent Inversion_clear`, 7.10.2 `Derive Inversion`, 7.10.2 `Derive Inversion_clear`, 7.10.2 Derive Inversion_clear ... with, 7.10.2 `Destruct`, 7.7.2, 7.7.2 `Discriminate`, 7.9.3, 7.9.3 `DiscrR`, 3.2.4 `Do`, 7.13.3 `Double Induction`, 7.7.4 `Drop`, 5.8.2 d-reduction, 1.3.2, 4.3, 4.3 `EApply`, 7.3.6, 8.2 `EAuto`, 7.11.2 `Elim ... using`, 7.7.1 `Elim ... with`, 7.7.1 Elimination Empty elimination, 4.5.4 Singleton elimination, 4.5.4 Elimination sorts, 4.5.4 `ElimType`, 7.7.1 Emacs, 12.6 `EmptyT`, 3.1.6 `End`, 2.4.2 `End Silent`, 5.8.4 Environment, 1.3.2, 4.2 Environment variables, 11.4 Equality, 3.1.1 `Eval`, 5.2.2 `EX`, 3.1.1 `EXT`, 3.1.6 `Ex`, 3.1.1 `Ex2`, 3.1.1 `Exact`, 7.2.1 `Exc`, 3.1.3 `Except`, 3.1.3 `Exists`, 7.6.1 `Explicitation of implicit arguments`, 2.7.1 `ExT`, 3.1.6 `ExT2`, 3.1.6 Extendable Grammars, 9.2 Extensive grammars, 5.7.5 `Extract Constant`, 17.2.3 `Extract Inductive`, 17.2.3 Extraction, 17 `Extraction`, 5.2.3, 17.1 `Extraction Inline`, 17.2.2 `Extraction Language`, 17.2.1 `Extraction Module`, 17.1 `Extraction NoInline`, 17.2.2 `eq`, 3.1.1 `eq_add_S`, 3.1.4 `eq_ind_r`, 3.1.1 `eq_rec`, 3.1.3 `eq_rec_r`, 3.1.1 `eq_rect`, 3.1.1 `eq_rect_r`, 3.1.1 `eq_S`, 3.1.4 `eqT`, 3.1.6 `eqT_ind_r`, 3.1.6 `eqT_rec_r`, 3.1.6 `error`, 3.1.3 h-conversion, 4.3 h-reduction, 4.3 `ex`, 3.1.1 `ex2`, 3.1.1 `ex_intro`, 3.1.1 `ex_intro2`, 3.1.1 `exist`, 3.1.3 `exist2`, 3.1.3 `existS`, 3.1.3 `existS2`, 3.1.3 `exT`, 3.1.6 `exT2`, 3.1.6 `exT_intro`, 3.1.6 `Fact`, 1.3.5, 6.1.3 `Fail`, 7.13.2 `False`, 3.1.1 `False_rec`, 3.1.3 `Field`, 7.11.8 `First`, 7.13.9 `Fix`, 4.5.5 Fix identi{...}, 1.2.10 `Fix_F`, 3.1.5 `Fix_F_eq`, 3.1.5 `Fix_F_inv`, 3.1.5 `Fixpoint`, 1.3.4 `Focus`, 6.2.5 `Fold`, 7.5.6 `Fourier`, 7.11.10 `Fst`, 3.1.2 `f_equal`, 3.1.1 `f_equal` `i`, 3.1.1 `false`, 3.1.2 `fix_eq`, 3.1.5 form, 1.2.3 `fst`, 3.1.2 Gallina, 1, 2 `gallina`, 12.7 `#GENTERM`, 9.3 `Generalize`, 7.3.9 `Generalize Dependent`, 7.3.9 `Global Variable`, 16.3.1 `Goal`, 1.3.5, 6.1.1 `Grammar`, 5.7.5, 9.2 `Grammar`, 9.2 Grammar Actions, 9.2.3 Grammar entries, 9.2.1 `ge`, 3.1.4 `gen`, 3.1.6 goal, 7 `gt`, 3.1.4 Head normal form, 4.3 `Hint`, 7.12 `Hint Rewrite`, 7.11.12 Hints databases, 7.12 `Hints Immediate`, 7.12 `Hints Resolve`, 7.12 `Hints Unfold`, 7.12 `Hnf`, 7.5.3 HTML, 12.5 `Hypothesis`, 1.3.1 `I`, 3.1.1 `Identity Coercion`, 14.6.2 `Idtac`, 7.13.1 `IF`, 3.1.1 Imperative programs libraries, 16.5 proof of, 16 `Implicit Arguments Off`, 5.7.1 `Implicit Arguments On`, 5.7.1 `Implicits`, 5.7.2 `Induction`, 7.7.1 `Inductive`, 1.3.3 Inductive definitions, 1.3.3 `Infix`, 5.7.6 `Info`, 7.13.11 `Injection`, 7.9.4, 7.9.4 `Inspect`, 5.1.2 `Intro`, 7.3.5 `Intro ... after`, 7.3.5 `Intro after`, 7.3.5 `Intros`, 7.3.5 `Intros` pattern, 7.7.3 `Intros until`, 7.3.5, 7.3.5 `Intuition`, 7.11.5 `Inversion`, 7.10.1, 8.4 `Inversion ... in`, 7.10.1 `Inversion ... using`, 7.10.1 `Inversion ... using ... in`, 7.10.1 `Inversion_clear`, 7.10.1 `Inversion_clear ... in`, 7.10.1 `IsSucc`, 3.1.4 ident, 1.1 `if ... then ... else`, 2.2.2 `iff`, 3.1.1 | implicit arguments, 2.7 `inl`, 3.1.2 `inleft`, 3.1.3 `inr`, 3.1.2 `inright`, 3.1.3 `inst`, 3.1.6 i-reduction, 4.3, 4.3, 4.5.4, 4.5.5 `LApply`, 7.3.6 LATEX, 12.4 `Lazy`, 7.5.1 `Left`, 7.6.1 `Lemma`, 1.3.5, 6.1.3 `LetTac`, 7.3.7 Lexical conventions, 1.1 Libraries, 2.5 LL(1), 9.2.5 `Load`, 5.3.1 `Load Verbose`, 5.3.1 Loadpath, 5.5 `Local`, 1.3.2, 6.1.3 Local definitions, 1.2.8 `Locate`, 5.2.9 `Locate File`, 5.5.10 `Locate Library`, 5.5.11 Logical paths, 2.5 l-calculus, 4.1.3 `le`, 3.1.4 `le_n`, 3.1.4 `le_S`, 3.1.4 `left`, 3.1.3 `let`, 9.2.3 `let ... in`, 2.2.3 let-in, 1.2.8 local context, 6 `lt`, 3.1.4 `Makefile`, 12.3 Man pages, 12.8 Metavariable, 9.1 ML-like patterns, 2.2.1, 13 `Move`, 7.3.3 `Mutual Inductive`, 1.3.3 `mult`, 3.1.4 `mult_n_O`, 3.1.4 `mult_n_Sm`, 3.1.4 `NewDestruct`, 7.7.2 `NewInduction`, 7.7.1 `None`, 3.1.2 Normal form, 4.3 Notations for real numbers, 3.2.4 `n_Sn`, 3.1.4 `nat`, 3.1.2 `nat_case`, 3.1.4 `nat_double_ind`, 3.1.4 native code, 11.1 `not`, 3.1.1 `not_eq_S`, 3.1.4 `notT`, 3.1.6 num, 1.1 `O`, 3.1.2 `O_S`, 3.1.4 `Omega`, 7.11.6, 15.1 `Opaque`, 5.2.4 Options of the command line, 11.5 `Orelse`, 7.13.4 `option`, 3.1.2 `or`, 3.1.1 `or_introl`, 3.1.1 `or_intror`, 3.1.1 `Parameter`, 1.3.1 `Pattern`, 7.5.7 Peano's arithmetic notations, 3.2.3 `Pose`, 7.3.7 Positivity, 4.5.3 Pretty printing, 5.7.4 `Print`, 5.1.1, 5.1.2 `Print All`, 5.1.2 `Print Classes`, 14.7.1 `Print Coercion Paths`, 14.7.4 `Print Coercions`, 14.7.2 `Print Extraction Inline`, 17.2.2 `Print Grammar`, 9.2.5 `Print Graph`, 14.7.3 `Print Hint`, 7.12.2 `Print HintDb`, 7.12.2 `Print LoadPath`, 5.5.6 `Print ML Modules`, 5.4.5 `Print ML Path`, 5.5.9 `Print Modules`, 5.4.3 `Print Proof`, 5.1.1 `Print Section`, 5.1.2 `Print Table Printing If`, 2.2.4 `Print Table Printing Let`, 2.2.4 Programming, 3.1.2 `Prolog`, 7.11.3 Prompt, 6 `Proof`, 1.3.5, 1.3.5, 6.1.4 Proof editing, 6 Proof General, 12.6.2 Proof term, 6 Prop, 1.2.3, 4.1.1 `Pwd`, 5.5.1 `pair`, 3.1.2 `plus`, 3.1.4 `plus_n_O`, 3.1.4 `plus_n_Sm`, 3.1.4 `pred`, 3.1.4 `pred_Sn`, 3.1.4 `prod`, 3.1.2 products, 1.2.6 `proj1`, 3.1.1 `proj2`, 3.1.1 `projS1`, 3.1.3 `projS2`, 3.1.3 `Qed`, 1.3.5, 6.1.2 Qualified identifiers, 2.6 Quantifiers, 3.1.1 `Quit`, 5.8.1 Quotations, 9.1 `Quote`, 7.10.3, 8.6 Quoted AST, 9.1 `?`, 2.7.2 `Read Module`, 5.4.1 `Record`, 2.1 Recursion, 3.1.5 Recursive arguments, 4.5.5 `Recursive Extraction`, 17.1 `Recursive Extraction Module`, 17.1 `Red`, 7.5.2 `Refine`, 7.2.2, 8.1 `Reflexivity`, 7.8.4 `Remark`, 1.3.5, 6.1.3 `Remove LoadPath`, 5.5.5 `Remove Printing If` ident, 2.2.4 `Remove Printing Let` ident, 2.2.4 `Rename`, 7.3.4 `Replace ... with`, 7.8.3 `Require`, 5.4.2 `Require Export`, 5.4.2 `Reset`, 5.6.1 `Reset Extraction Inline`, 17.2.2 `Reset Initial`, 5.6.3 Resource file, 11.3 `Restart`, 6.2.4 `Restore State`, 5.6.3 `Resume`, 6.1.7 `Rewrite`, 7.8.1 `Rewrite ->`, 7.8.1 `Rewrite -> ... in`, 7.8.1 `Rewrite <-`, 7.8.1 `Rewrite <- ... in`, 7.8.1 `Rewrite ... in`, 7.8.1 `Right`, 7.6.1 `Ring`, 7.11.7, 18, 18.4 `refl_eqT`, 3.1.6 `refl_equal`, 3.1.1 `right`, 3.1.3 `S`, 3.1.2 `Save`, 1.3.5, 6.1.2 `Scheme`, 7.14, 8.3 Script file, 5.3 `SELF`, 9.2.5 `Search`, 5.2.6 `Search ... inside ...`, 5.2.8 `Search ... outside ...`, 5.2.8 `SearchPattern`, 5.2.7 `SearchPattern ... inside ...`, 5.2.8 `SearchPattern ... outside ...`, 5.2.8 `SearchRewrite`, 5.2.8 `SearchRewrite ... inside ...`, 5.2.8 `SearchRewrite ... outside ...`, 5.2.8 `Section`, 2.4.1 Sections, 2.4 Set, 1.2.3, 4.1.1 `Set Extraction AutoInline`, 17.2.2 `Set Extraction Optimize`, 17.2.2 `Set Hyps_limit`, 6.3.2 `Set Implicit Arguments`, 2.7.1, 5.7.1 `Set Printing Coercion`, 14.8.2 `Set Printing Coercions`, 14.8.1 `Set Printing Synth`, 2.2.4 `Set Printing Wildcard`, 2.2.4 `Set Undo`, 6.2.2 `Setoid_replace`, 19, 19.4 `Setoid_rewrite`, 19.4 `Show`, 6.3.1 `Show Conjectures`, 6.3.1 `Show Implicits`, 6.3.1 `Show Intro`, 6.3.1 `Show Intros`, 6.3.1 `Show Programs`, 16.3.1 `Show Proof`, 6.3.1 `Show Script`, 6.3.1 `Show Tree`, 6.3.1 Silent mode, 5.8.3 `Simpl`, 7.5.4 `Simple Inversion`, 7.10.1 `Simplify_eq`, 7.9.5 Small inductive type, 4.5.4 `Snd`, 3.1.2 `Solve`, 7.13.10 `Some`, 3.1.2 Sorts, 1.2.3, 1.2.3, 4.1.1 `Split`, 7.6.1 `SplitAbsolu`, 3.2.4 `SplitRmult`, 3.2.4 Strong elimination, 4.5.4 `Structure`, 14.9 Substitution, 4.1.3 `Suspend`, 6.1.6 `Symmetry`, 7.8.5 `Syntactic Definition`, 2.7.2, 5.7.3 `Syntax`, 5.7.4, 9.3 `sig`, 3.1.3 `sig2`, 3.1.3 `sigS`, 3.1.3 `sigS2`, 3.1.3 `snd`, 3.1.2 sort, 1.1 specif, 1.2.3 subgoal, 7 `sum`, 3.1.2 `sum_eqT`, 3.1.6 `sumbool`, 3.1.3 `sumor`, 3.1.3 `sym_eq`, 3.1.1 `sym_not_eq`, 3.1.1 `sym_not_eqT`, 3.1.6 `Tactic Definition`, 7.15 Tacticals, 7.13 `Abstract`, 7.13.12 `Do`, 7.13.3 `Fail`, 7.13.2 `First`, 7.13.9 `Solve`, 7.13.10 `Idtac`, 7.13.1 `Info`, 7.13.11 `Orelse`, 7.13.4 `Repeat`, 7.13.5 `Try`, 7.13.8 tactic`1``;`tactic`2`, 7.13.6 tactic`0``;[`tactic`1``|``...``|`tactic`n``]`, 7.13.7 Tactics, 7 `Tauto`, 7.11.4 Terms, 1.2 `Test Printing If` ident, 2.2.4 `Test Printing Let` ident, 2.2.4 `Test Printing Synth`, 2.2.4 `Test Printing Wildcard`, 2.2.4 `Theorem`, 1.3.5, 6.1.3 Theories, 3 `Time`, 5.8.5 `Transitivity`, 7.8.6 `Transparent`, 5.2.5 `Trivial`, 7.11.1 `True`, 3.1.1 `Try`, 7.13.8 Type, 1.2.3, 4.1.1 Type of constructor, 4.5.3 Typing rules, 4.2, 7.3 App, 4.2, 7.3.8 Ax, 4.2 Cases, 4.5.4 Const, 4.2 Conv, 4.3, 7.3.5, 7.3.10 Fix, 4.5.5 Lam, 4.2, 7.3.5 Let, 4.2, 7.3.5 Prod, 4.2 Var, 4.2, 7.3.1 tactic, 7.1 tactic macros, 7.15 term, 1.1 `trans_eq`, 3.1.1 `trans_eqT`, 3.1.6 `true`, 3.1.2 `tt`, 3.1.2 type, 1.2.4 `Undo`, 6.2.1 `Unfocus`, 6.2.6 `Unfold`, 7.5.5 `Unfold ... in`, 7.5.5 `UnitT`, 3.1.6 `Unset Extraction AutoInline`, 17.2.2 `Unset Extraction Optimize`, 17.2.2 `Unset Hyps_limit`, 6.3.3 `Unset Implicit Arguments`, 5.7.1 `Unset Printing Coercion`, 14.8.2 `Unset Printing Coercions`, 14.8.1 `Unset Printing Synth`, 2.2.4 `Unset Printing Wildcard`, 2.2.4 `Unset Undo`, 6.2.3 `unit`, 3.1.2 `Variable`, 1.3.1 `Variables`, 1.3.1 `value`, 3.1.3 Well founded induction, 3.1.5 Well foundedness, 3.1.5 `Write State`, 5.6.4 `well_founded`, 3.1.5 z-reduction, 4.3, 4.3