NEWS
changeset 6131 2d9e609abcdb
parent 6070 032babd0120b
child 6141 a6922171b396
equal deleted inserted replaced
6130:30b84ad2131d 6131:2d9e609abcdb
    28   (e.g. genuiely long arrows)
    28   (e.g. genuiely long arrows)
    29 
    29 
    30 *** HOL ***
    30 *** HOL ***
    31 
    31 
    32 * There are now decision procedures for linear arithmetic over nat and int:
    32 * There are now decision procedures for linear arithmetic over nat and int:
    33 1. nat_arith_tac copes with arbitrary formulae involving `=', `<', `<=', 0,
    33 
    34 Suc, `+' and `-'; other subterms are treated as atomic; subformulae not
    34 1. arith_tac copes with arbitrary formulae involving `=', `<', `<=', `+',
    35 involving type `nat' are ignored; quantified subformulae are ignored unless
    35 `-', `Suc' and numerical constants; other subterms are treated as atomic;
    36 they are positive universal or negative existential. The tactic has to be
    36 subformulae not involving type `nat' or `int' are ignored; quantified
    37 invoked by hand and can be a little bit slow. In particular, the running time
    37 subformulae are ignored unless they are positive universal or negative
    38 is exponential in the number of occurrences of `-'.
    38 existential. The tactic has to be invoked by hand and can be a little bit
    39 2. fast_nat_arith_tac is a cut-down version of nat_arith_tac: it only takes
    39 slow. In particular, the running time is exponential in the number of
    40 (negated) (in)equalities among the premises and the conclusion into account
    40 occurrences of `-' on `nat'.
    41 (i.e. no compound formulae) and does not know about `-'. It is fast and is
    41 
       
    42 2. fast_arith_tac is a cut-down version of arith_tac: it only takes (negated)
       
    43 (in)equalities among the premises and the conclusion into account (i.e. no
       
    44 compound formulae) and does not know about `-' on `nat'. It is fast and is
    42 used automatically by the simplifier.
    45 used automatically by the simplifier.
    43 3. int_arith_tac behaves like nat_arith_tac but applies to inequalities over
    46 
    44 `int';  it also knows about unary `-'; binary `-' does not cause a blow-up.
       
    45 4. fast_int_arith_tac is related to int_arith_tac like fast_nat_arith_tac is
       
    46 related to nat_arith_tac.
       
    47 NB: At the moment, these decision procedures do not cope with mixed nat/int
    47 NB: At the moment, these decision procedures do not cope with mixed nat/int
    48 formulae such as `m < n ==> int(m) < int(n)'.
    48 formulae where the two parts interact, such as `m < n ==> int(m) < int(n)'.
    49 
    49 
    50 *** Internal programming interfaces ***
    50 *** Internal programming interfaces ***
    51 
    51 
    52 * tuned current_goals_markers semantics: begin / end goal avoids
    52 * tuned current_goals_markers semantics: begin / end goal avoids
    53 printing empty lines;
    53 printing empty lines;