You are on page 1of 26

-----------------------------------------------------------------------r2696 | schwicht | 2014-01-24 10:23:42 +0100 (Fri, 24 Jan 2014) | 1 line

Updated
-----------------------------------------------------------------------r2695 | schwicht | 2014-01-24 10:22:55 +0100 (Fri, 24 Jan 2014) | 1 line
Minor changes
-----------------------------------------------------------------------r2694 | schwicht | 2014-01-24 10:22:30 +0100 (Fri, 24 Jan 2014) | 2 lines
by-assume-minimal-with renamed into by-assume-minimal-wrt . Typos
corrected.
-----------------------------------------------------------------------r2693 | schwicht | 2014-01-24 10:21:20 +0100 (Fri, 24 Jan 2014) | 1 line
Display functions added. Minor corrections.
-----------------------------------------------------------------------r2692 | schwicht | 2014-01-24 10:20:17 +0100 (Fri, 24 Jan 2014) | 3 lines
In atr-rel-definite-proof atr-arb-definite-proof atr-irrel-goal-proof
atr-arb-goal-proof impnc case added. min-excl-proof? replaced by
min-excl-formula?
-----------------------------------------------------------------------r2691 | schwicht | 2014-01-24 10:19:47 +0100 (Fri, 24 Jan 2014) | 7 lines
Initial THEOREMS moved here because formula-substitute (used in
make-proof-in-aconst-form for AllncTotalIntro) needs
formula-of-nulltype? truth-aconst redefined via the theorem Truth
(with truth-proof). efq-atom-proof imp-to-atom-proof
atom-to-imp-proof and-atom-to-left-proof and-atom-to-right-proof
atoms-to-and-atom-proof dec-cases-proof moved here, because they need
truth-aconst .
-----------------------------------------------------------------------r2690 | schwicht | 2014-01-24 10:19:13 +0100 (Fri, 24 Jan 2014) | 3 lines
Initial THEOREMS moved to ets.scm because formula-substitute (used in
make-proof-in-aconst-form for AllncTotalIntro) needs
formula-of-nulltype?
-----------------------------------------------------------------------r2689 | schwicht | 2014-01-24 10:18:43 +0100 (Fri, 24 Jan 2014) | 1 line
Typo corrected.
-----------------------------------------------------------------------r2688 | schwicht | 2014-01-24 10:18:17 +0100 (Fri, 24 Jan 2014) | 6 lines
typed-constr-name-to-step-formula corrected for multiary constructors,
corresponding to constructor-type-to-step-type . This is necessary to
fit the type of the recursion operator. Induction with partial
variables and stotality premise disallowed. Use elimination instead.
truth-aconst (with Truth-Axiom) removed. truth-aconst is redefined in
ets.scm via the theorem Truth (with truth-proof).
-----------------------------------------------------------------------r2687 | schwicht | 2014-01-24 10:17:46 +0100 (Fri, 24 Jan 2014) | 6 lines
In formula-substitute an active impnc becoming inactive after
substitution is changed to imp. In the fold-formula / unfold-formula
mechanism only imp is used, not impnc (as before 2014-01-08).
foldable-excl-form? and foldable-excu-form? changed accordingly.
tensor-form-to-imp-impnc-formula and h-deg-respecting? then become

superfluous and are removed.


-----------------------------------------------------------------------r2686 | schwicht | 2014-01-24 10:17:14 +0100 (Fri, 24 Jan 2014) | 3 lines
Change comment in constructor-type-to-step-type from Comment: nested
argtype: substitute alg times type to Comment: argtype tvar or nested
(then substitute alg times type)
-----------------------------------------------------------------------r2685 | schwicht | 2014-01-08 12:38:41 +0100 (Wed, 08 Jan 2014) | 1 line
Initial commit
-----------------------------------------------------------------------r2684 | schwicht | 2014-01-08 11:13:04 +0100 (Wed, 08 Jan 2014) | 1 line
Updated
-----------------------------------------------------------------------r2683 | schwicht | 2014-01-08 11:11:56 +0100 (Wed, 08 Jan 2014) | 2 lines
Material in temp/nested.tex and in lectures/proofth/ss13/pt.tex included.
Structural totality used as a convenient abbreviation only.
-----------------------------------------------------------------------r2682 | schwicht | 2014-01-08 11:11:09 +0100 (Wed, 08 Jan 2014) | 2 lines
Updated to the present terminology. For instance, Truth-Axiom
replaced by the theorem Truth. Minor corrections.
-----------------------------------------------------------------------r2681 | schwicht | 2014-01-08 11:10:19 +0100 (Wed, 08 Jan 2014) | 2 lines
Updated to the present terminology. For instance, Truth-Axiom
replaced by the theorem Truth. Minor corrections.
-----------------------------------------------------------------------r2680 | schwicht | 2014-01-08 11:07:36 +0100 (Wed, 08 Jan 2014) | 1 line
Extended and cleaned up.
-----------------------------------------------------------------------r2679 | schwicht | 2014-01-08 11:05:44 +0100 (Wed, 08 Jan 2014) | 2 lines
Theorem BooleEqTotal removed. It already is in ets.scm. Usage of
Stab-Atom removed.
-----------------------------------------------------------------------r2678 | schwicht | 2014-01-08 11:04:13 +0100 (Wed, 08 Jan 2014) | 2 lines
Theorem BooleEqTotal removed. It already is in ets.scm. rtotality
for list added.
-----------------------------------------------------------------------r2677 | schwicht | 2014-01-08 11:03:39 +0100 (Wed, 08 Jan 2014) | 1 line
AllPartial-All replaced by AllTotalIntro
-----------------------------------------------------------------------r2676 | schwicht | 2014-01-08 11:02:49 +0100 (Wed, 08 Jan 2014) | 5 lines
simpreal.scm loaded before real.scm. Constructor names L M R renaed
in Lft Mid Rht. Simplified split lemmata. Removed an unnecessary
let. Inserted description of running the file cauchysds.hs generated
by terms-to-haskell-program . Extended experiments to include haskell
code.
-----------------------------------------------------------------------r2675 | schwicht | 2014-01-08 11:01:56 +0100 (Wed, 08 Jan 2014) | 3 lines
Added: (e, Total, RTotal) ~ (=, Equal, REqual). add-equality and

add-requality to be defined. The predconst Equal_{\alpha} should have


type alpha. Example: CoREqualList, bisimilarity.
-----------------------------------------------------------------------r2674 | schwicht | 2014-01-08 11:00:51 +0100 (Wed, 08 Jan 2014) | 1 line
(map (lambda (x y) (list x y)) arg1 arg2) replaced by (map list arg1 arg2)
-----------------------------------------------------------------------r2673 | schwicht | 2014-01-08 11:00:19 +0100 (Wed, 08 Jan 2014) | 1 line
INITIAL- removed.
-----------------------------------------------------------------------r2672 | schwicht | 2014-01-08 10:59:10 +0100 (Wed, 08 Jan 2014) | 1 line
Reference to Vorobev 1964 added.
-----------------------------------------------------------------------r2671 | schwicht | 2014-01-08 10:58:40 +0100 (Wed, 08 Jan 2014) | 4 lines
atr-min-excl-proof-to-bot-reduced-proof atr-min-excl-proof-to-ex-proof
atr-min-excl-proof-to-structured-extracted-term min-excl-proof?
adapted to the fact that the premises in the final kernel of
wrong-formula (i.e., the goals) can be imp as well as impnc premises.
-----------------------------------------------------------------------r2670 | schwicht | 2014-01-08 10:57:57 +0100 (Wed, 08 Jan 2014) | 2 lines
impnc allowed. However, for the Dialectica interpretation there is
no difference between imp and impnc.
-----------------------------------------------------------------------r2669 | schwicht | 2014-01-08 10:57:18 +0100 (Wed, 08 Jan 2014) | 15 lines
atom-true-proof rewritten and generalized to a partial variable. It
is moved here from pproof.scm since it uses EqD.
idpredconst-to-et-type rewritten, to avoid that (exd boole T) gets
type boole yprod unit. axiom-to-extracted-term corrected in case Elim
of a uniform one-clause defined idpredconst (like EqD). In
global-assumption-to-extracted-term case EfqLog one needs an eterm of
function type, not inhab. all-formulas-to-et-rec-const
all-formulas-to-mr-ind-proof now give an error message in case of a
nested algebra. number-and-idpredconst-to-et-constr-term corrected:
simidpc-et-tvars instead of et-tvars needed. OrNc added. It is
needed for soundness proofs. boole-eq-total-proof and theorem
BooleEqTotal added already here. axiom-to-soundness-proof extended by
cases for Closure and Gfp. rtotality added for yprod ysum ysumu
uysum. Efq-Log and Stab-Log renamed into EfqLog and StabLog. In
eqd-compat-proof and eqd-compat-rev-proof impnc replaced by imp.
-----------------------------------------------------------------------r2668 | schwicht | 2014-01-08 10:56:29 +0100 (Wed, 08 Jan 2014) | 15 lines
mk-imp-impnc-formula added. make-exc-intro-aconst split into
make-exca-intro-aconst and make-excl-intro-aconst. The latter takes a
list nc-indicator of booleans and a positive integer n. The
implications after the Qs are determined by nc-indicator. Similarly
exc-formula-to-exc-intro-aconst is split into
exca-formula-to-exca-intro-aconst and
excl-formula-to-excl-intro-aconst. Both are used in exc-intro-intern.
(make-exc-elim-aconst l-test m n) uses stability. In case the goal is
a negation stability can be avoided. We then use
(make-exca-elim-neg-aconst m n) (make-excl-elim-neg-aconst
nc-indicator n). All these occur in
(exca-formula-and-nega-concl-to-exca-elim-neg-aconst exca-formula
nega-concl) (excl-formula-and-negl-concl-to-excl-elim-neg-aconst

excl-formula negl-concl) (exc-formula-and-concl-to-exc-elim-aconst


exc-formula concl). reset and INITIAL- removed.
-----------------------------------------------------------------------r2667 | schwicht | 2014-01-08 10:55:41 +0100 (Wed, 08 Jan 2014) | 25 lines
mk-proof-in-and-intro-form adapted to right-associative and.
(mk-proof-in-cr-nc-intro-form x . rest) added. x is obtained from a
list of premises and variables where each element is followed by an
indicator for nc or cr (true means nc). When normalizing a proof via
nbe in the elim case the associated rec constant has to accomodate the
free variables in inst-formula of the elim-aconst. The tvars in their
types may be affected by the tpsubst of the elim-aconst. When such a
type clash occurs, we rename type variables implicitly bound by tsubst
away from tvars. In check-and-display-proof-aux it is checked that in
c.r. parts every aconst has relevant pvars substituted by c.r. cterms
only. Hand normalization of proofs redone, including beta conversion
and idpredconst-elim-intro conversion. The latter uses for nested
idpredconstants formula-and-psubsts-to-mon-proof. An elim-intro redex
occurs when an elim aconst is applied to terms and the result of
applying an intro-aconst to terms and an idpc-proof.
proof-in-idpredconst-elim-intro-redex-form? and
proof-to-one-step-idpredconst-elim-intro-reduct added.
proof-to-one-step-beta-reduct replaced by proof-to-one-step-reduct.
proof-to-beta-nf replaced by proof-to-normal-form
proof-in-beta-normal-form? replaced by proof-in-normal-form?
proof-in-beta-normal-form-for-extraction? replaced by
proof-in-normal-form-for-extraction? proof-in-beta-normal-form-aux?
replaced by proof-in-normal-form-aux?
formula-and-falsity-avar-to-efq-proof corrected and extended to
coinductively defined predicates (work of Kenji Miyamoto).
-----------------------------------------------------------------------r2666 | schwicht | 2014-01-08 10:55:06 +0100 (Wed, 08 Jan 2014) | 8 lines
Added Comp axioms corresponding to computation rules. In check-aconst
opt-ignore-deco-flag (default: #t) introduced. If it is #f it is
checked that psubst for the relevant pvars has c.r. cterms only.
all-formulas-to-ind-aconst and all-formula-to-cases-aconst now give an
error message in case of a nested algebra. In
imp-formulas-to-uninst-gfp-formulas-etc at the internally defined
and-ex-fla-to-shortened-fla cases andu exl exu added.
tpsubst-for-param-pvars renamed into tpsubst.
-----------------------------------------------------------------------r2665 | schwicht | 2014-01-08 10:54:29 +0100 (Wed, 08 Jan 2014) | 1 line
Token ornc added. make-injection corrected.
-----------------------------------------------------------------------r2664 | schwicht | 2014-01-08 10:53:47 +0100 (Wed, 08 Jan 2014) | 26 lines
formula-to-depth moved here from term.scm. formula-to-spos-pvars
moved here from psym.scm. imp-impnc-all-allnc-form-to-vars added.
imp-impnc-all-allnc-form-to-vars-and-prems-with-nc-indicator added.
tensor-form-to-imp-impnc-formula and h-deg-respecting? added.
fold-formula and unfold-formula adapted to h-deg-respecting
implications. Reason: an excl-intro-aconst generated by
(make-excl-intro-aconst nc-indicator n) when turned into a theorem
should have an extracted term whose type does not involve the unit
type. This is generally needed in program extraction when the theorem
is c.r. and contains general pvars some of whose are instantiated with
n.c. cterms. Then cThm has a too general (i.e., not fitting) type,
since unit types are simplified away. Therefore for the relevant

pvars (i.e., those whose tvar appears in type of cThm, except bot and
a final-val-type pvar) we say using nc-indicator which ones are are to
be specialized with n.c. cterms. make-andi corrected: make-andl was
called with formula2 and formula1, i.e., in the wrong order. ornc
added. make-bicon, bicon-form?, bicon-form-to-bicon,
bicon-form-to-left, bicon-form-to-right or-form-to-disjuncts
qf-to-term formula-to-token-tree all extended by an ornc case.
formula-to-depth and formula-to-idpredconst-names added.
negation-form? negation-form-to-kernel negation-log-form?
negation-log-form-to-kernel added. totality-predicate? and
(unfold-totality formula) added. In unfold-totality
term-to-totality-formula replaced by term-to-unfolded-totality-formula .
predicate-to-token-tree gets token-tree-tag idpredconst-op in case
there are cterms. cterm-to-token-tree added.
-----------------------------------------------------------------------r2663 | schwicht | 2014-01-08 10:53:10 +0100 (Wed, 08 Jan 2014) | 3 lines
token-tree-to-string and token-tree-to-pp-tree get new cases
idpredconst-op and cterm. token-tree-tag-to-precedence and
prime-token-tree? adapted.
-----------------------------------------------------------------------r2662 | schwicht | 2014-01-08 10:52:36 +0100 (Wed, 08 Jan 2014) | 9 lines
default-term-to-token-tree changed: if-terms for nested algebras do
not admit a case display. In match-aux A -> B and A --> B considered
equal if A is n.c. term-to-expr corrected: (i) in case GRecGuard if
language is scheme: then prevs rather than prevs-fix is used (ii) in
case = if language is scheme: quotation inserted. (iii) parentheses
in var names are displayed with a semicolon. Example:
\x28;nat=>nat=>nat@@nat\x29;. This confuses the parser who takes the
semicolon as a comment symbol. Cure: rename-parentheses . natrec
natgrecguard etc renamed into natRec natGrecGuard.
-----------------------------------------------------------------------r2661 | schwicht | 2014-01-08 10:51:52 +0100 (Wed, 08 Jan 2014) | 10 lines
PVAR-NAMES renamed into PREDICATE-VARIABLES . pvar-to-string changed.
If a new arity has been assigned to a pvar name, pvar-to-string uses
the default display string, as var-to-string. idpredconst-to-string
changed: new case for OrNc. term-to-unfolded-totality-formula added.
It uses alg-name-to-rtotality-idpredconst-name in case alg has
parameters (needed when normalizing proofs with elim for totality).
add-rftotality alg-name-to-rftotality-idpredconst-name and
add-rltotality alg-name-to-rftotality-idpredconst-name removed. They
can be defined by rtotal where the other parameters are substituted by
totality. term-and-alist-to-totality-formula rewritten accordingly.
-----------------------------------------------------------------------r2660 | schwicht | 2014-01-08 10:51:13 +0100 (Wed, 08 Jan 2014) | 12 lines
rec-at partially rewritten. In the use of nbe-object-rec-compose the
proper recobj is obtained by first applying the one obtained from
rel-simalg-names-to-recobjs-alist to free-objs.
constr-name-to-rec-args-indicator now is obsolete.
all-formulas-to-rec-const and all-formula-to-cases-const now give an
error message in case of a nested algebra. imp-formulas-to-rec-const
changed: free kept separate from recop-type, and unfold-totality is
first applied to imp-formulas. destruct-at changed: it now uses
injection-or-f rather than injection. If there is no disjunction in
the result (eg ntree, yprod), injection-or-f is #f and the
argument-product of the constructor is returned. In case of the unit
algebra, Dummy is returned.

-----------------------------------------------------------------------r2659 | schwicht | 2014-01-08 10:50:19 +0100 (Wed, 08 Jan 2014) | 1 line


VAR-NAMES renamed into VARIABLE-NAMES.
-----------------------------------------------------------------------r2658 | schwicht | 2014-01-08 10:49:43 +0100 (Wed, 08 Jan 2014) | 2 lines
remove-nulltype-argtypes nested-alg-name? added.
type-to-alg-with-simalg-names added.
-----------------------------------------------------------------------r2657 | schwicht | 2014-01-08 10:48:56 +0100 (Wed, 08 Jan 2014) | 2 lines
init-segments nonnil-init-segments string-suffix?
string-replace-substrings added. Examples for string functions added.
-----------------------------------------------------------------------r2656 | schwicht | 2013-09-27 14:44:43 +0200 (Fri, 27 Sep 2013) | 1 line
Updated
-----------------------------------------------------------------------r2655 | schwicht | 2013-09-27 14:43:15 +0200 (Fri, 27 Sep 2013) | 1 line
Updated
-----------------------------------------------------------------------r2654 | schwicht | 2013-09-16 10:03:37 +0200 (Mon, 16 Sep 2013) | 1 line
Updated
-----------------------------------------------------------------------r2653 | schwicht | 2013-09-16 10:02:36 +0200 (Mon, 16 Sep 2013) | 2 lines
NatLeast and NatLeastUp updated. Adapted the Example (introducing
let) in section 6.2 Normalization.
-----------------------------------------------------------------------r2652 | schwicht | 2013-09-16 10:02:07 +0200 (Mon, 16 Sep 2013) | 1 line
Symm, Tran replaced by Sym, Trans.
-----------------------------------------------------------------------r2651 | schwicht | 2013-09-16 09:41:37 +0200 (Mon, 16 Sep 2013) | 1 line
Symm, Tran replaced by Sym, Trans.
-----------------------------------------------------------------------r2650 | schwicht | 2013-09-16 09:40:12 +0200 (Mon, 16 Sep 2013) | 1 line
Updated
-----------------------------------------------------------------------r2649 | schwicht | 2013-09-16 09:39:44 +0200 (Mon, 16 Sep 2013) | 2 lines
Names for global assumptions unified. Equal replaced by Leibniz
equality EqD.
-----------------------------------------------------------------------r2648 | schwicht | 2013-09-16 09:39:11 +0200 (Mon, 16 Sep 2013) | 9 lines
This file real.scm should be loaded after numbers.scm. Global
assumptions already proved in numbers.scm removed. Rules for
RealTimes and proof of RealTimesTotal added. This requires much of
this file, and in particular ord-field-simp-bwd from simpreal. Hence
both are covered only here. TotalReaPos TotalReadInt TotalReaRat
added. ApproxSplit and its corollaries, together with the used global
assumptions, moved here from cont.scm. We formulate ApproxSplit with
oru rather than with ex boole. The latter version is called
ApproxSplitBoole and proved from the present ApproxSplit in cont.scm.

-----------------------------------------------------------------------r2647 | schwicht | 2013-09-16 09:38:37 +0200 (Mon, 16 Sep 2013) | 3 lines


Algebra real renamed into rea. This avoids a clash with data Real =
RealConstr .. in average.hs produced by terms-to-haskell-program .
Comment syntax with hash symbol removed.
-----------------------------------------------------------------------r2646 | schwicht | 2013-09-16 09:37:41 +0200 (Mon, 16 Sep 2013) | 21 lines
TranslationPosAsInt added. nat.scm always loaded if not already done.
Algebra real renamed in to rea. This avoids a clash with data Real =
RealConstr .. in average.hs produced by terms-to-haskell-program .
Added PosTotalVar PosEqToEqD PosIfTotal PosRecTotal . Similarly for
the algebras int rat rea cpx. Computation rule for RealLt corrected.
PosExpOne added, and also the rewrite rule 1**n -> 1. To transfer
properties proved for nat to pos is seems best to have an inverse
NatToPos to PosToNat . This requires introduction of NatEven
NatDouble and NatHalf . PosToNat redefined using NatDouble
NatToPosToNatId and PosToNatToPosId added, proving the identities.
PosToNatPlus PosToNatTimes PosToNatLe PosToNatLt added, proving that
PosToNat is an isomorphism w.r.t. + * <= <. Similarly for NatToPos .
PosLeMonPlus and PosLeMonTimes added. To prepare defining RealTimes
by computation rules and proving RealTimesTotal (in real.scm) PosLog
and the theorems PosLeExpTwoLog PosLtExpTwoSuccLog RatLeCritPos
RatLeBoundPos added. Global assumptions RatTimesTwoExp RatDivTwoExp
added. Theorems RatLeBound and RatLeAbsBound added. PosToNatToInt:
NatToInt(PosToNat pos)=IntP pos added. PosNotLeToLt added as global
assumption. It should be best proved using the isomorphic embedding
PosToNat of pos into nat. PosNotLtToLe added. Proofs of RealPosTotal
RealLtTotal added. RealInv and RealInvTotal added.
-----------------------------------------------------------------------r2645 | schwicht | 2013-09-16 09:36:54 +0200 (Mon, 16 Sep 2013) | 9 lines
Theorem NatTimesPlusDistr and NatTimesPlusDistrLeft expressing the
corresponding rewrite rules added. Their proofs are adapted to the
change in simp. NatTotalVar added. NatLeastUpTotal added. Theorems
NatLtMonPlus1 NatLtMonPlus2 NatLtMonMinus NatLtMonMinusLeft added.
NatLeastLeIntro NatLeastLtElim NatLeastUpLeIntro NatLeastUpLtElim
added. NatLeastUpBound NatLeastUpLBound added (were forgotten).
NatLeGeToEq renamed into NatLeAntiSym. NatEqSymm replaced by
NatEqSym. NatRecTotal added. NatDouble NatEven NatHalf CVInd added.
synt-non-zero? now includes NatToPos.
-----------------------------------------------------------------------r2644 | schwicht | 2013-09-16 09:36:09 +0200 (Mon, 16 Sep 2013) | 6 lines
extotal-aconst and extotal-rev-aconst marked as obsolete (not used).
expartial-ex-aconst renamed into extotal-intro-aconst.
ex-expartial-aconst renamed into extotal-elim-aconst.
Theorems ExTotalIntro and ExTotalElim added.
axiom-to-extracted-term and theorem-to-extracted-term adapted to
the renaming.
-----------------------------------------------------------------------r2643 | schwicht | 2013-09-16 09:35:28 +0200 (Mon, 16 Sep 2013) | 28 lines
Axioms AllTotalIntro (was AllPartial-All), AllTotalElim (was
All-AllPartial), AllncTotalIntro, AllncTotalElim are viewed as initial
theorems, with the same name. This makes it easy to use them in
interactive proofs. Further abbreviation axioms AtomToEqDTrue
EqDTrueToAtom ExTotalIntro (was ExPartial-Ex) and ExTotalElim (was
Ex-ExPartial) will be added to THEOREMS in ets.scm, when Leibniz

equality EqD and ExR are available. From them Truth := atom(True) (a
preferred alternative to Truth-Axiom) is proved and added to THEOREMS.
Then EqDCompat EqDCompatRev EqDSymm EqDTrans EqDCompatApp EFEqD are
proven and added to THEOREMS. Also InhabTotal (needed to express that
an arbitrary type given by a type variable is inhabited) and
InhabTotalMR (needed for its realizability interpretation) are proved
from the corresponding axioms and added (in ets.scm) to THEOREMS.
INITIAL-THEOREMS updated accordingly. In reset
INCREASING-ALGEBRAS-TO-COERCION-ALIST commented out. simp-with-intern
corrected: when testing whether the substitution of lhs by varterm has
changed the formula, the comparison should be done *without*
normalization. Use formula=? rather than classical-formula=? Further
change in simp-with-intern : all non-normalized cases are checked
first, to avoid unwanted normalizations. Names in simp-with
corrected: opt-dir -> opt-dir-or-x and rest -> x-and-xs-or-xs. A goal
has ncvars as a separate field. This is a sublist of its context,
containing all object and assumption variables used later for
allnc-intro or impnc-intro. Obsolete: goal-to-cvars. New:
context-and-ncvars-and-formula-to-formula which replaces
context-and-cvars-and-formula-to-formula . In inst-with-intern test
for nc-violations corrected. It is now done as in use-with-intern,
via nc-violations of final-proof. symm replaced by sym.
-----------------------------------------------------------------------r2642 | schwicht | 2013-09-16 09:34:45 +0200 (Mon, 16 Sep 2013) | 7 lines
alltotal-aconst and alltotal-rev-aconst marked as obsolete (not used).
alltotal-intro-aconst added (for allpartial-all-aconst ).
alltotal-elim-aconst added (for all-allpartial-aconst ).
allnctotal-intro-aconst and allnctotal-elim-aconst added. In
aconst-to-computed-repro-data occurence of make-stotal removed, and
typo for the Cases aconst eliminated. In check-aconst newly
introduced assumption constants inserted. symm replaced by sym.
-----------------------------------------------------------------------r2641 | schwicht | 2013-09-16 09:34:01 +0200 (Mon, 16 Sep 2013) | 1 line
Display strings des and desyprod changed into Des and DesYprod.
-----------------------------------------------------------------------r2640 | schwicht | 2013-09-16 09:33:25 +0200 (Mon, 16 Sep 2013) | 17 lines
default-term-to-token-tree corrected: if an alternative in an if-term
does not have sufficiently many abstracted variables, then they are
generated via term-to-simple-outer-eta-expansion .
term-to-simple-outer-eta-expansion introduced. It takes an optional
argument l for the number of argument types to be abstracted. In
contrast to term-to-outer-eta-expansion it does not expand newly
introduced variables. Moreover new abstracted variables are only
generated when necessary. Changes made by Fredrik Nordvall Forsberg
(Haskell translation): (i) The list of pconst names mapped to Haskell
functions was outdated. (ii) We sometimes added more function
definitions than needed, e.g. IntPred is defined in terms of PosPred,
but IntPred is translated to a builtin function, so there is no need
to pull in the definition of PosPred anymore. (iii) Take the type of
constants, not only their names, into account when deciding if they
are numeric terms. (iv) Star-types now considered in the translation
of canonical inhabitants. (v) Bug repaired in the version of the
translation which removes the measure from general recursion.
-----------------------------------------------------------------------r2639 | schwicht | 2013-09-16 09:32:38 +0200 (Mon, 16 Sep 2013) | 2 lines
In add-ids enforced-et-alg-names removed. One can use arbitrary

algebra names.
-----------------------------------------------------------------------r2638 | schwicht | 2013-09-16 09:32:03 +0200 (Mon, 16 Sep 2013) | 1 line
RESERVED-NAMES extended, and made into a simple list.
-----------------------------------------------------------------------r2637 | schwicht | 2013-09-16 09:31:28 +0200 (Mon, 16 Sep 2013) | 1 line
remove-nth added.
-----------------------------------------------------------------------r2636 | miyamoto | 2013-06-17 13:16:06 +0200 (Mon, 17 Jun 2013) | 10 lines
Contribution by Fredrik Nordvall Forsberg.
The Haskell translation treats the numerator of rational numbers
in computation rules correctly.
Example:
(add-program-constant "TestOne" (py "rat=>int=>rat") t-deg-zero)
(add-computation-rules
"TestOne (IntP pos1#pos2) (IntN pos3)" "0#pos1")
(terms-to-haskell-program "testone.hs"
(list (list (pt "TestOne") "testone")))
-----------------------------------------------------------------------r2635 | miyamoto | 2013-06-04 12:58:50 +0200 (Tue, 04 Jun 2013) | 2 lines
The bibtex file name fixed.
-----------------------------------------------------------------------r2634 | schwicht | 2013-06-02 19:04:06 +0200 (Sun, 02 Jun 2013) | 1 line
Updated
-----------------------------------------------------------------------r2633 | schwicht | 2013-06-02 19:00:26 +0200 (Sun, 02 Jun 2013) | 1 line
Minor changes
-----------------------------------------------------------------------r2632 | schwicht | 2013-06-02 18:57:23 +0200 (Sun, 02 Jun 2013) | 1 line
Minor changes
-----------------------------------------------------------------------r2631 | schwicht | 2013-06-02 18:56:48 +0200 (Sun, 02 Jun 2013) | 26 lines
Example (introducing let) added in section 6.2 Normalization.
Example (introducing abbreviations) added in the by-assume section.
Section on nat.scm added.
New names of abbreviating axioms:
AllTotalIntro (was AllPartial-All or AllTotalRev)
AllTotalElim (was All-AllPartial or AllTotal)
AllncTotalIntro (was AllncPartial-Allnc or AllncTotalRev)
AllncTotalElim (was Allnc-AllncPartial or AllncTotal)
For the inductively defined existential quantifiers
ExDTotalIntro (was ExDTotalRev)
ExLTotalIntro (was ExLTotalRev)
ExRTotalIntro (was ExRTotalRev)
ExUTotalIntro (was ExUTotalRev)
ExDTotalElim (was ExDTotal)

ExLTotalElim (was ExLTotal)


ExRTotalElim (was ExRTotal)
ExUTotalElim (was ExUTotal)
For the primitive existential quantifier (possibly useful for efficiency)
ExTotalIntro (was ExPartial-Ex or ExTotalRev)
ExTotalElim (was Ex-ExPartial or ExTotal)
-----------------------------------------------------------------------r2630 | schwicht | 2013-06-02 18:55:43 +0200 (Sun, 02 Jun 2013) | 3 lines
Definition of PosMinus and of RatExp corrected. Totality proofs added,
also for PosMax PosMin IntAbs IntMax IntMin IntEqTotal RatEqTotal
RatAbsTotal RealAbsTotal. Rewrite rule PosPred(PosS pos) -> pos added.
-----------------------------------------------------------------------r2629 | schwicht | 2013-06-02 18:55:08 +0200 (Sun, 02 Jun 2013) | 3 lines
LeastNat added, with theorems LeastNatTotal LeastNatBound
LeastNatLtIntro LeastNatLtElim1 LeastNatLtElim2 LeastNatEqIntro
LeastNatEqElim . LeastNat supersedes AllBNat. NatMaxLUB added.
-----------------------------------------------------------------------r2628 | schwicht | 2013-06-02 18:54:10 +0200 (Sun, 02 Jun 2013) | 1 line
formula-with-total-extract? removed.
-----------------------------------------------------------------------r2627 | schwicht | 2013-06-02 18:53:39 +0200 (Sun, 02 Jun 2013) | 3 lines
In add-theorem for lemma L degree of totality of the pconst cL changed
to (term-to-t-deg (proof-to-extracted-term proof)). Usage of
formula-with-total-extract? removed.
-----------------------------------------------------------------------r2626 | schwicht | 2013-06-02 18:52:51 +0200 (Sun, 02 Jun 2013) | 1 line
Discarded code (with add-param-alg) removed.
-----------------------------------------------------------------------r2625 | schwicht | 2013-05-16 21:32:16 +0200 (Thu, 16 May 2013) | 1 line
Minor update
-----------------------------------------------------------------------r2624 | schwicht | 2013-05-16 21:31:24 +0200 (Thu, 16 May 2013) | 1 line
Adapted to right-associative and. Dot notation removed. Definition of applicat
ion notation f x simplified.
-----------------------------------------------------------------------r2623 | schwicht | 2013-05-16 21:29:48 +0200 (Thu, 16 May 2013) | 1 line
term-to-numerator-and-denominator rewritten, to work with general application te
rms
-----------------------------------------------------------------------r2622 | schwicht | 2013-05-16 21:27:39 +0200 (Thu, 16 May 2013) | 1 line
Updated
-----------------------------------------------------------------------r2621 | schwicht | 2013-05-16 21:26:50 +0200 (Thu, 16 May 2013) | 1 line
Minor changes. Mainly removal of obsolete material
-----------------------------------------------------------------------r2620 | schwicht | 2013-05-16 21:26:10 +0200 (Thu, 16 May 2013) | 1 line
Minor changes. Mainly removal of obsolete material

-----------------------------------------------------------------------r2619 | schwicht | 2013-05-06 13:23:21 +0200 (Mon, 06 May 2013) | 1 line


Order of arguments repaired in totality proof for RatDiv
-----------------------------------------------------------------------r2618 | schwicht | 2013-05-06 13:09:27 +0200 (Mon, 06 May 2013) | 1 line
Totality proofs added for RatDiv, RealPlus and RealMinus
-----------------------------------------------------------------------r2617 | schwicht | 2013-05-06 13:08:08 +0200 (Mon, 06 May 2013) | 3 lines
In term-to-external-expr with language scheme quotation at binary
program constants removed, and typo (missing parentheses) in the if
case corrected.
-----------------------------------------------------------------------r2616 | schwicht | 2013-05-06 13:06:39 +0200 (Mon, 06 May 2013) | 1 line
change-t-deg-to-one typo corrected: lc -> lr
-----------------------------------------------------------------------r2615 | miyamoto | 2013-04-10 23:41:46 +0200 (Wed, 10 Apr 2013) | 2 lines
Minor modification in order not to get a warning message by petite.
-----------------------------------------------------------------------r2614 | miyamoto | 2013-04-03 22:19:57 +0200 (Wed, 03 Apr 2013) | 2 lines
*.save files changed. It works with petite chez scheme v8.
-----------------------------------------------------------------------r2613 | miyamoto | 2013-03-20 18:27:36 +0100 (Wed, 20 Mar 2013) | 7 lines
Improvements by Fredrik Nordvall Forsberg.
The definition of the constant "TranslationNatMinusPosDiff"
is moved from lib/numbers.scm to lib/nat.scm.
Haskell translator capitalizes the initial letter of constructor names.
Programmable constant names without computation rules start with a small letter.
It declares Nat and Pos as a synonym of Interger in Haskell code.
-----------------------------------------------------------------------r2612 | miyamoto | 2013-02-14 11:08:23 +0100 (Thu, 14 Feb 2013) | 2 lines
Proofs was fixed to adopt the change of idpc formulas.
-----------------------------------------------------------------------r2611 | miyamoto | 2013-02-12 21:55:28 +0100 (Tue, 12 Feb 2013) | 3 lines
Rounding up results.
readwrite.scm is excluded from testing, since it takes long.
-----------------------------------------------------------------------r2610 | miyamoto | 2013-02-12 17:56:18 +0100 (Tue, 12 Feb 2013) | 3 lines
In examples/analysis/cauchysds.scm, Haskell translation added.
examples/analysis/cauchysds.scm updated.
-----------------------------------------------------------------------r2609 | miyamoto | 2013-02-08 17:24:42 +0100 (Fri, 08 Feb 2013) | 2 lines
Haskell translation (work by Fredrik Nordvall Forsberg) added.

-----------------------------------------------------------------------r2608 | miyamoto | 2013-01-30 19:03:10 +0100 (Wed, 30 Jan 2013) | 4 lines


In number-and-idpredconst-to-et-constr-term type variables to substitute
are taken from algebra definitions instead of standard indexed tvars.
A test case is added for this change.
-----------------------------------------------------------------------r2607 | miyamoto | 2013-01-11 15:13:01 +0100 (Fri, 11 Jan 2013) | 2 lines
examples/analysis/readwrite.scm used for testing.
-----------------------------------------------------------------------r2606 | miyamoto | 2013-01-11 00:30:15 +0100 (Fri, 11 Jan 2013) | 2 lines
initial version of examples/analysis/integration.scm
-----------------------------------------------------------------------r2605 | miyamoto | 2013-01-11 00:15:27 +0100 (Fri, 11 Jan 2013) | 3 lines
Some lines are commented out, eg. time procedure which doesn't
work in some scheme interpreters.
-----------------------------------------------------------------------r2604 | miyamoto | 2013-01-04 11:19:17 +0100 (Fri, 04 Jan 2013) | 2 lines
initial version of examples/analysis/readwrite.scm.
-----------------------------------------------------------------------r2603 | miyamoto | 2013-01-03 19:25:17 +0100 (Thu, 03 Jan 2013) | 2 lines
examples/analysis/cauchysds.scm added to a part of the testing.
-----------------------------------------------------------------------r2602 | miyamoto | 2013-01-03 19:23:26 +0100 (Thu, 03 Jan 2013) | 2 lines
examples/analysis/cauchysds.scm added.
-----------------------------------------------------------------------r2601 | miyamoto | 2013-01-03 18:07:29 +0100 (Thu, 03 Jan 2013) | 2 lines
*.save files in examples (other than in examples/test) updated.
-----------------------------------------------------------------------r2600 | miyamoto | 2013-01-03 18:04:49 +0100 (Thu, 03 Jan 2013) | 3 lines
Minor modification to examples/test/*.scm, mainly about comments.
*.save files updated.
-----------------------------------------------------------------------r2599 | miyamoto | 2013-01-03 17:58:27 +0100 (Thu, 03 Jan 2013) | 15 lines
According to the change of the order of premises in elimination axioms,
some proofs are fixed.
add-theorem requires for theorems with name suffix "Sound" to have the
extracted term as the realizer in the statement. Until finding a solution
to allow arbitrary realizer in the statement, suffix of some theorem names
are changed to "Real".
The following theorems are the case.
In lib/list.scm

ListAppendTotalReal, ListAppdTotalReal, ListLengthTotalReal, ListProjTotalReal


In lib/numbers.scm
PosEqTotalReal, PosSTotalReal, PosPredTotalReal, PosPlusTotalReal,
PosMinusTotalReal, PosTimesTotalReal, PosLtTotalReal, PosLeTotalReal,
BooleIfTotalReal, IntPlusTotalReal, IntMinusTotalReal, IntTimesTotalReal,
RatPlusTotalReal, RatMinusTotalReal, RatTimesTotalReal.
-----------------------------------------------------------------------r2598 | miyamoto | 2013-01-03 17:45:56 +0100 (Thu, 03 Jan 2013) | 2 lines
impnc added
-----------------------------------------------------------------------r2597 | miyamoto | 2013-01-03 17:45:27 +0100 (Thu, 03 Jan 2013) | 3 lines
token-tree-tag-to-precedence corrected: alg-typeop has one less than
the maximal precedence
-----------------------------------------------------------------------r2596 | miyamoto | 2013-01-03 17:45:02 +0100 (Thu, 03 Jan 2013) | 18 lines
idpredconst-name-to-spos-param-pvars idpredconst-to-spos-pvars
formula-to-spos-pvars added. add-ids adapted to nested clauses.
idpc-clause? removed. For simplicity it is required that nullary
clauses come first in the listing of clauses. This makes
clauses-with-idpc-pvars-to-nullary-clauses superfluous. Minor
cleanup in add-mr-ids . formula-to-et-type-for-mr-clauses adapted
to nestedness by referring to a new
idpredconst-to-et-type-for-mr-clauses . In the imp/impnc case of
real-and-idpc-clause-to-mr-idpc-clause allnc, impnc replaced by all,
imp. This modifies the IMR clauses which allows in the IMR case to
construct the correct formula in
imp-formulas-to-uninst-elim-formulas-etc .
real-and-idpc-clause-to-mr-idpc-clause is similar to
real-and-formula-to-mr-formula-aux . The difference is in the usage
of the local pvar-to-mr-pvar (with special results for idpc-pvars)
and formula-to-et-type-for-mr-clauses. add-co extended to nested
clauses.
-----------------------------------------------------------------------r2595 | miyamoto | 2013-01-03 17:44:32 +0100 (Thu, 03 Jan 2013) | 3 lines
Introduction of application notation simplified: add-application
takes an application operator as argument.
-----------------------------------------------------------------------r2594 | miyamoto | 2013-01-03 17:44:02 +0100 (Thu, 03 Jan 2013) | 6 lines
make-map-const type-etc-to-map-const map-at and map-at-intern added.
In alg-name-etc-to-rec-const rec-at nbe-object-rec-compose usage of
apply made more readable (no cons needed for initial arguments).
Recursion and corec-const-and-bound-to-bcorec-term adapted to nested
algebras. corec-const-to-uninst-alg-or-arrow-types corrected.
-----------------------------------------------------------------------r2593 | miyamoto | 2013-01-03 17:43:25 +0100 (Thu, 03 Jan 2013) | 6 lines
imp-formulas-to-mr-elim-proof corrected in case (car imp-formulas)
is c.i.: then the lists gs are all empty (cf. [SW12, p.344]). In
imp-formulas-to-mr-elim-proof pvar-to-tvar replaced by PVAR-TO-TVAR

idpredconst-to-mr-idpredconst adapted to nested algebras. AndL


added. imp-formulas-to-et-rec-const adapted to nested algebras.
-----------------------------------------------------------------------r2592 | miyamoto | 2013-01-03 17:42:52 +0100 (Thu, 03 Jan 2013) | 5 lines
andl included. formula-to-efq-proof simplified.
unfold-total-variables fold-total-variables fold-to-unfold
unfold-to-fold fold-imp-unfold-proof added.
constructor-eqd-proof-to-args-eqd-proof corrected (arg-type -> alg)
-----------------------------------------------------------------------r2591 | miyamoto | 2013-01-03 17:42:18 +0100 (Thu, 03 Jan 2013) | 23 lines
check-aconst adapted to ElimMR.
mr-elim-aconst-to-computed-repro-formulas added.
non-computational-invariant? adapted to andl.
alltotal-aconst alltotal-rev-aconst
allnctotal-aconst allnctotal-rev-aconst exdtotal-aconst
exltotal-aconst exrtotal-aconst exutotal-aconst exdtotal-rev-aconst
exltotal-rev-aconst exrtotal-rev-aconst exutotal-rev-aconst
extotal-aconst extotal-rev-aconst total-pair-aconst
total-pair-rev-aconst added. In add-theorem error identification
corrected for soundness theorems.
imp-formulas-to-uninst-elim-formulas-etc adapted to nested idpcs.
imp-formulas-to-elim-aconst returns ElimMR aconst in IMR case.
formula-to-prem-modified-formula added.
imp-form-to-param-premises-and-rec-prems-imp-final-concl
rec-premise-of-idpc-clause? (appeared twice)
idpc-clause-to-rec-premises
imp-form-to-param-premises-imp-rec-prems-imp-final-concl removed.
strictly-positive? removed. It is superseded by type-to-spos-tvars
and formula-to-spos-pvars .
-----------------------------------------------------------------------r2590 | miyamoto | 2013-01-03 17:41:33 +0100 (Thu, 03 Jan 2013) | 5 lines
unfold-simplified-simrec-appterm and simplify-simrec-appterm
adapted. first-match rewritten to accomodate inductive predicates.
pattern-and-instance-to-tsubst-aux extended to deal with Total x^
and TotalNat n^ (as in match-aux).
-----------------------------------------------------------------------r2589 | miyamoto | 2013-01-03 17:40:58 +0100 (Thu, 03 Jan 2013) | 2 lines
andl included
-----------------------------------------------------------------------r2588 | miyamoto | 2013-01-03 17:38:50 +0100 (Thu, 03 Jan 2013) | 7 lines
casedist added (was forgotten). andl included. elim-intern adapted
to the fact that the uninst-formula of an elim-aconst for IMR starts
with all x. In inversion-intern, simplified-inversion-intern and
cases-intern the obsolete make-eq replaced by make-eqd. In
x-and-x-list-to-proof-and-new-num-goals-and-maxgoal partial
arguments for and-const and imp-const allowed.

-----------------------------------------------------------------------r2587 | miyamoto | 2013-01-03 17:36:18 +0100 (Thu, 03 Jan 2013) | 2 lines


minima and choices added.
-----------------------------------------------------------------------r2586 | miyamoto | 2013-01-03 17:34:56 +0100 (Thu, 03 Jan 2013) | 25 lines
type-to-free renamed into type-to-tvars . In make-substitution-wrt
error message improved. (type-gen-substitute type gen-tsubst)
substitutes simultaneously the left hand sides of the alist
gen-tsubst by the corresponding right hand sides. gen-subst is an
alist associating types to types. alg-name-to-spos-tvars
alg-to-spos-tvars type-to-spos-tvars added. finalg? adapted to
nested algebras. add-algebras-with-parameters extended to nested
algebras. To add algebras use add-algs. Example:
(add-algs (list "list") 'prefix-typeop
'("list" "Nil")
'("alpha=>list=>list" "Cons"))
Parallel to add-ids, the constructor names are optional and hence
written after the type-string. However, since by convention algebra
names start with a lower case character and constructor names with
an upper case character we can also use the opposite order (as
before). We require that the constructor types are given in a fixed
order, where nullary constructor types come first.
type-to-canonical-inhabitant adapted (should be renamed into
type-to-total-inhabitant ).
constr-types-with-names-and-rest-names-to-inhabcrits
type-to-inhabcrits alg-name-to-constr-types-with-names added.
-----------------------------------------------------------------------r2585 | miyamoto | 2013-01-03 17:21:28 +0100 (Thu, 03 Jan 2013) | 2 lines
COMMENT-STRING changed.
-----------------------------------------------------------------------r2584 | miyamoto | 2013-01-03 17:20:22 +0100 (Thu, 03 Jan 2013) | 2 lines
Token andL added. make-ysumu and make-uysum added.
-----------------------------------------------------------------------r2583 | miyamoto | 2013-01-01 16:53:10 +0100 (Tue, 01 Jan 2013) | 2 lines
examples/test.scm and examples/test.save removed.
-----------------------------------------------------------------------r2582 | miyamoto | 2013-01-01 16:49:56 +0100 (Tue, 01 Jan 2013) | 2 lines
test.scm is split into sections and placed in examples/test.
-----------------------------------------------------------------------r2581 | miyamoto | 2012-12-27 03:01:15 +0100 (Thu, 27 Dec 2012) | 2 lines
converting comments in "#| ... |#" to ";; ".
-----------------------------------------------------------------------r2580 | miyamoto | 2012-12-27 03:00:27 +0100 (Thu, 27 Dec 2012) | 2 lines

converting comments in "#| ... |#" to ";; ".


-----------------------------------------------------------------------r2579 | miyamoto | 2012-12-27 02:44:06 +0100 (Thu, 27 Dec 2012) | 2 lines
all test files work in the COQ goal display.
-----------------------------------------------------------------------r2578 | miyamoto | 2012-12-27 01:06:05 +0100 (Thu, 27 Dec 2012) | 2 lines
Adopting COQ-GOAL-DISPLAY to be #t for testing.
-----------------------------------------------------------------------r2577 | miyamoto | 2012-12-27 00:52:48 +0100 (Thu, 27 Dec 2012) | 2 lines
Fixing existing examples for testing.
-----------------------------------------------------------------------r2576 | schwicht | 2012-10-24 15:32:14 +0200 (Wed, 24 Oct 2012) | 1 line
Bibtex reference to minlog.bib
-----------------------------------------------------------------------r2575 | schwicht | 2012-10-22 11:47:03 +0200 (Mon, 22 Oct 2012) | 1 line
Bibtex reference updated
-----------------------------------------------------------------------r2574 | schwicht | 2012-10-18 17:08:14 +0200 (Thu, 18 Oct 2012) | 1 line
Updated
-----------------------------------------------------------------------r2573 | schwicht | 2012-10-18 17:04:30 +0200 (Thu, 18 Oct 2012) | 2 lines
COQ-GOAL-DISPLAY set to false. by-assume-with replaced by by-assume.
display-constructors replaced by display-alg.
-----------------------------------------------------------------------r2572 | schwicht | 2012-10-18 16:58:11 +0200 (Thu, 18 Oct 2012) | 1 line
makeindex added for tutor.
-----------------------------------------------------------------------r2571 | schwicht | 2012-10-18 16:57:22 +0200 (Thu, 18 Oct 2012) | 2 lines
by-assume-with replaced by by-assume. display-constructors replaced
by display-alg. Index added.
-----------------------------------------------------------------------r2570 | schwicht | 2012-10-18 16:56:32 +0200 (Thu, 18 Oct 2012) | 2 lines
Updated and extended. New subsection on Basic proof constructions
added.
-----------------------------------------------------------------------r2569 | schwicht | 2012-10-18 16:55:48 +0200 (Thu, 18 Oct 2012) | 1 line
Updated minlogman and SchwichtenbergWainer
-----------------------------------------------------------------------r2568 | schwicht | 2012-10-18 16:53:54 +0200 (Thu, 18 Oct 2012) | 2 lines
ListNatEqToEqD added (for use in compat-at, to avoid Equal).
ListNatEqTotal BooleEqTotal ListBooleEqToEqD ListBooleEqTotal added.
-----------------------------------------------------------------------r2567 | schwicht | 2012-10-18 16:53:17 +0200 (Thu, 18 Oct 2012) | 2 lines

Theorem BooleEqToEqD added (for use in NatMinusPlusEq when simp is


applied to NatMinusPlus).
-----------------------------------------------------------------------r2566 | schwicht | 2012-10-18 16:51:53 +0200 (Thu, 18 Oct 2012) | 1 line
Removed ../doc/ref.tex ../doc/tutor.tex from TAGS
-----------------------------------------------------------------------r2565 | schwicht | 2012-10-18 16:50:57 +0200 (Thu, 18 Oct 2012) | 1 line
check-formula should check predicates
-----------------------------------------------------------------------r2564 | schwicht | 2012-10-18 16:48:52 +0200 (Thu, 18 Oct 2012) | 1 line
Typo corrected
-----------------------------------------------------------------------r2563 | schwicht | 2012-10-18 16:47:48 +0200 (Thu, 18 Oct 2012) | 1 line
Very minor simplification
-----------------------------------------------------------------------r2562 | schwicht | 2012-10-18 16:45:55 +0200 (Thu, 18 Oct 2012) | 1 line
Discarded code removed
-----------------------------------------------------------------------r2561 | schwicht | 2012-10-18 16:44:21 +0200 (Thu, 18 Oct 2012) | 1 line
Typos corrected
-----------------------------------------------------------------------r2560 | schwicht | 2012-10-18 16:42:21 +0200 (Thu, 18 Oct 2012) | 7 lines
inhabtotal-aconst and inhabtotalmr-aconst moved here from axiom.scm.
Theorems InhabTotal and InhabTotalMR added. imp-const-total-proof
or-const-total-proof neg-const-total-proof pair-one-total-proof
pair-two-total-proof added. Theorems ImpConstTotal OrConstTotal
NegConstTotal PairOneTotal PairTwoTotal added.
constructors-overlap-imp-falsity-proof moved to proof.scm from here.
truth-proof and theorem Truth added.
-----------------------------------------------------------------------r2559 | schwicht | 2012-10-18 16:41:09 +0200 (Thu, 18 Oct 2012) | 4 lines
InhabTotal and InhabTotalMR removed from INITIAL-THEOREMS . They will
be proved from the respective axioms in ets.scm and added to THEOREMS. formulato-efq-proof renamed into formula-to-efq-proof-or-f , since it
is used as a test in inversion and simplified-inversion , and occurs
only there. strip-intern adapted to inductively defined connectives.
-----------------------------------------------------------------------r2558 | schwicht | 2012-10-18 16:39:36 +0200 (Thu, 18 Oct 2012) | 15 lines
formula-to-efq-proof renamed into formula-to-efq-proof-or-f , since it
is used as a test in inversion and simplified-inversion , and occurs
only there. A new section 10-8 Basic proof constructions has been
added. There a proper formula-to-efq-proof is provided, which returns
a proof of F --> A . make-proof-in-iterated-imp-elim-form and
eqd-proofs-and-predicate-proof-to-proof added. To generate proofs of
the injectivity of constructors
constructor-eqd-proof-to-args-eqd-proof added. It expects an
eqd-proof of C rs eqd C ss with the same constructor C and C rs of
ground type, and an optional index (with default value 0). The result
is a proof of ri eqd si. constructor-eqd-imp-args-eqd-proof is
similar, but expects an eqd-formula rather than an eqd-proof, and

proves the implication C rs eqd C ss --> ri eqd si.


constructors-overlap-imp-falsity-proof moved from ets.scm to here. It
is used for formula-to-efq-proof and this in turn for inversion.
-----------------------------------------------------------------------r2557 | schwicht | 2012-10-18 16:38:50 +0200 (Thu, 18 Oct 2012) | 3 lines
Degrees of totality changed to t-deg-zero for pconsts Inhab AndConst
ImpConst OrConst NegConst PairOne PairTwo. Duplicated falsity-log
(commented out) removed.
-----------------------------------------------------------------------r2556 | schwicht | 2012-10-18 16:38:02 +0200 (Thu, 18 Oct 2012) | 2 lines
In add-theorem special treatment of Inhab removed. inhabtotal-aconst
and inhabtotalmr-aconst moved from here to axiom.scm.
-----------------------------------------------------------------------r2555 | schwicht | 2012-10-18 16:37:03 +0200 (Thu, 18 Oct 2012) | 5 lines
Duplicated term-to-totality-formula (commented out) removed. In
add-ids it is checked that taking the initial clause of each idpc
produces clauses without recursive calls which are terminating. In
clauses-with-idpc-pvars-to-nullary-clauses imp-form-to-premises
replaced by imp-impnc-form-to-premises.
-----------------------------------------------------------------------r2554 | schwicht | 2012-10-18 16:36:18 +0200 (Thu, 18 Oct 2012) | 3 lines
In change-t-deg-to-one new-rhs and new-lhs generated by term-gen-subst
for pconst and new-pconst, rather than by first producing a display
string and then parsing this string.
-----------------------------------------------------------------------r2553 | schwicht | 2012-10-18 16:35:00 +0200 (Thu, 18 Oct 2012) | 1 line
list-tabulate and find-tail added.
-----------------------------------------------------------------------r2552 | schwicht | 2012-03-16 08:58:36 +0100 (Fri, 16 Mar 2012) | 1 line
Updated
-----------------------------------------------------------------------r2551 | schwicht | 2012-03-16 08:57:50 +0100 (Fri, 16 Mar 2012) | 2 lines
permutative-aconst-proof-to-eta-expansion-aux corrected:
proof-to-formula replaced by aconst-to-inst-formula
-----------------------------------------------------------------------r2550 | schwicht | 2012-03-15 21:57:19 +0100 (Thu, 15 Mar 2012) | 1 line
Updated
-----------------------------------------------------------------------r2549 | schwicht | 2012-03-15 21:56:19 +0100 (Thu, 15 Mar 2012) | 2 lines
Removed add-totality for pos and int. They are already in
numbers.scm.
-----------------------------------------------------------------------r2548 | schwicht | 2012-03-15 21:55:36 +0100 (Thu, 15 Mar 2012) | 1 line
Removed add-mr-ids for TotalNat. It is already in lib/nat.scm.
-----------------------------------------------------------------------r2547 | schwicht | 2012-03-13 23:38:36 +0100 (Tue, 13 Mar 2012) | 1 line
Updated
-----------------------------------------------------------------------r2546 | schwicht | 2012-03-13 23:26:31 +0100 (Tue, 13 Mar 2012) | 1 line

RatEq replaced by RatEqv


-----------------------------------------------------------------------r2545 | schwicht | 2012-03-13 23:25:46 +0100 (Tue, 13 Mar 2012) | 4 lines
In ord-field-simp-bwd the newly generated global assumption
ex k RealLt 0(abs x)k -> ... 0<abs r -> ... -> atom -> simp-atom
now is formulated (as it should) with an integer k, not a pos.
RatEq replaced by RatEqv
-----------------------------------------------------------------------r2544 | schwicht | 2012-03-13 23:25:03 +0100 (Tue, 13 Mar 2012) | 1 line
Updated
-----------------------------------------------------------------------r2543 | schwicht | 2012-03-13 23:21:30 +0100 (Tue, 13 Mar 2012) | 1 line
Updated
-----------------------------------------------------------------------r2542 | schwicht | 2012-03-13 23:20:56 +0100 (Tue, 13 Mar 2012) | 8 lines
Added totality proofs. The successor S for pos renamed in PosS, to
avoind conflict with the reserved name STotal. CpxMax CpxMin removed.
SOne pos1--SZero pos2 mapsto SZero pos1--(SZero pos2--1) replaced by
mapsto SOne(pos1--pos2). ALGEBRA-EDGE-TO-EMBED-TERM-ALIST needs to be
updated once PosToNat and NatToInt have been proved to be total.
replace-item-in-algebra-edge-to-embed-term-alist provided for this.
Postponed: some rewrite rules, and totality proofs of PosMax PosMin.
RatEq renamed into RatEqv to avoid clash with ordinary equality.
-----------------------------------------------------------------------r2541 | schwicht | 2012-03-13 23:20:22 +0100 (Tue, 13 Mar 2012) | 4 lines
TotalListMR and STotalListMR added. ListAppendTotalSound
ListAppendSTotalSound ListAppendNilPartialSound ListAppdTotalSound
ListAppdSTotalSound ListAppdNilPartialSound ListLengthTotalSound
ListLengthSTotalSound ListProjTotal ListProjTotalSound added.
-----------------------------------------------------------------------r2540 | schwicht | 2012-03-13 23:19:53 +0100 (Tue, 13 Mar 2012) | 29 lines
TotalNatMR added. Inductively defined predicate TotalBoole moved to
boole.scm. (add-theorem AndConstTotal and-const-total-proof) moved
to ets.scm. NatIfTotal NatEqTotal NatLtToLe and NatLeGeToEq added.
NatLtToLePred and NatLtMonPred added. NatEqToEqD added. NatIfTotal
NatEqTotal NatLtToLe and NatLeGeToEq added. NatLtToLePred and
NatLtMonPred added. Monotonicity properties NatLeMonPlus,
NatLeMonTimes, NatLeMonPred, NatLeMonMinus added. NatPlusMinus
NatMinusPlus NatMinusPlusEq NatMinusMinus added. Further rewrite
rules added:
nat1*Pred nat2 =>
Pred nat2*nat1 =>
nat1*(nat2--nat3)
(nat2--nat3)*nat1

nat1*nat2--nat1
nat2*nat1--nat1
=> nat1*nat2--nat1*nat3
=> nat2*nat1--nat3*nat1

nat1+nat2<nat1 => False


nat1+nat2<nat2 => False
nat1<=nat2+nat1 => True
Pred nat<=nat => True
nat1--nat2<=nat1 => True

0--nat => 0
nat1+nat2--nat2 => nat1
nat2+nat1--nat2 => nat1
nat1--nat2--nat3 => nat1--(nat2+nat3)
Renamed Nat=Trans into NatEqTrans, etc. Generally: = -> Eq. For
Leibniz equality use EqD
-----------------------------------------------------------------------r2539 | schwicht | 2012-03-13 23:10:49 +0100 (Tue, 13 Mar 2012) | 33 lines
In formula-to-et-type treatment of preconst TotalMR included.
formula-of-nulltype? and formula-of-nulltype-under-extension? in the
preconst case Total corrected (the result then must be #f).
proof-to-extracted-term-aux corrected for an ExR elim aconst with
c.i. kernel. proof-to-extracted-term and theorem-to-extracted-term
get an unfold-let-flag as optional argument. If it is present and
true, than cId's will be unfolded. axiom-to-extracted-term
theorem-to-extracted-term and global-assumption-to-extracted-term
added. imp-formulas-to-et-rec-const adapted to c.r. Total predconsts.
efeqd-proof added. This allows to put EFEqD into THEOREMS when
loading init. It is done here, since the proof uses EqDCompat.
constructors-overlap-imp-falsity-proof added. This can be used for
formula-to-efq-proof and this in turn for inversion. Added (before
the internal proof of soundness): and-const-total-proof
boole-if-total-proof . Theorem BooleIfTotal added.
idpredconst-to-mr-idpredconst corrected. In
real-and-formula-to-mr-formula-aux c.r. idpcs with identity instead of
an alg name (i.e., ExL, ExR, ExLT, ExRT, AndR) are treated separately.
In the predconst case the predconst Total (which is c.r.) gets a
special treatment. Local variable pvar-to-mr-pvar replaced by
reference to a newly introduced global variable PVAR-TO-MR-PVAR, which
refers to and updates PVAR-TO-MR-PVAR-ALIST.
proof-to-soundness-proof-aux extended to Intro and Elim axioms for
inductively defined predicates. Auxiliary functions
number-and-idpredconst-to-intro-mr-proof imp-formulas-to-mr-elim-proof
proof-to-allnc-impnc-proof
real-mr-clause-proof-and-clause-to-clause-proof
allnc-impnc-to-exu-imp-proof added. exl-formula-to-exl-intro-mr-proof
exr-formula-to-exr-intro-mr-proof exu-formula-to-exu-intro-mr-proof
andr-formula-to-andr-intro-mr-proof
eqd-elim-aconst-to-eqd-mr-elim-proof added. axiom-to-soundness-proof
theorem-to-soundness-proof and global-assumption-to-soundness-proof
added. proof-to-soundness-formula added.
-----------------------------------------------------------------------r2538 | schwicht | 2012-03-13 23:10:08 +0100 (Tue, 13 Mar 2012) | 2 lines
elem-form? redefined, to make formulas built with (inductively
defined) binary connectives (ord, andd etc) elementary.
-----------------------------------------------------------------------r2537 | schwicht | 2012-03-13 23:09:24 +0100 (Tue, 13 Mar 2012) | 20 lines
set-goal displays the goal with the originally chosen variable names:
it uses display-num-goal with fold-formula only. This overrides the
default display function (with rename-variables) in display-num-goal .
Error message introduced for sg . INITIAL-THEOREMS updated,
InhabTotalMR included. INITIAL-COQ-GOAL-DISPLAY set to true.
display-num-goal uses rename-variables (default case). If renaming of
variables in a goal is not desired, use
display-current-goal-with-original-variables abbreviated dcgo .
assert and cut both accept a string as argument, which is parsed into

a formula. drop-except added. In (drop-except . x-list), x-list is a


list of numbers or strings identifying hypotheses from the context. A
new goal is created, which differs from the previous one only in
display aspects: all hypotheses except the listed ones are hidden (but
still present). split extended to inductively defined conjunctions
andd andr andu. msplit adapted to right-associative and. ex-intro
accepts a string as argument, which is parsed into a term. compat-at
and compat-rev-at rewritten, using Leibniz equality EqD rather than
Equal. This makes Equal obsolete. Auxiliary functions
finalg-to-string and finalg-to-=-to-eqd-aconst added.
simphyp-with-intern corrected. simp-with-to removed.
-----------------------------------------------------------------------r2536 | schwicht | 2012-03-13 23:08:15 +0100 (Tue, 13 Mar 2012) | 14 lines
Corrected (free variables were forgotten):
make-proof-in-andd-elim-left-form make-proof-in-andd-elim-right-form
make-proof-in-andr-elim-left-form make-proof-in-andr-elim-right-form
make-proof-in-andu-elim-left-form make-proof-in-andu-elim-right-for
display-proof display-normalized-proof proof-to-expr and
proof-to-expr-with-formulas now have opt-proof-or-thm-name as
argument. opt-proof-or-thm-name-and-ignore-deco-flag now has
opt-proof-or-thm-name-and-ignore-deco-flag as argument. Adapted to
admissible substitutions: proof-to-goedel-gentzen-translation-aux
spreading-formula-to-proof spreading-formula-to-proof-aux
wiping-formula-to-proof wiping-formula-to-proof-aux
isolating-formula-to-proof isolating-formula-to-proof-aux Suffix Real
(for realize) changed to MR. In reset TotalMR included. Typo
corrected: myerreor -> myerror.
-----------------------------------------------------------------------r2535 | schwicht | 2012-03-13 23:07:37 +0100 (Tue, 13 Mar 2012) | 30 lines
aconst=? gives #f in case one argument is not of aconst form.
check-aconst corrected for Elim and Gfp aconsts. total-aconst
removed. It is obsolete because Total f unfolds via unfold-formula
into allnc x^(Total x^ -> Total(f x^)). STotal make-stotal
stotal-aconst and the initial theorem Stotal removed. Reason:
stotality does not make sense abstractly, but only for an algebra.
There it can be defined inductively. Example: STotalList.
constr-name-to-constr-total-aconst removed: this is just what the
clauses of TotalNat say.
constr-name-and-index-to-constr-total-args-aconst removed. Reason:
TotalNat(Succ n^) -> TotalNat n^ can be proved by inversion (cf
test.scm for the idpc Even). total-pair-aconst and total-proj-aconst
removed, because for instance Total(x^ @y^) unfolds via unfold-formula
into Total x^ & Total y^ . Moreover one should use the inductively
defined TotalYprod(x^ pair y^) instead. finalg-to-eq-to-=-1-aconst
and finalg-to-eq-to-=-2-aconst and finalg-to-=-to-eq-aconst are
obsolete because Equal is. TotalInhab renamed into InhabTotal.
inhabtotalmr-aconst added. sfinalg-to-se-to-stotal-aconst and
sfinalg-to-stotal-to-se-aconst removed since they contain the obsolete
predconct STotal. allnc-allncpartial-aconst and its converse
allncpartial-allnc-aconst and also ex-expartial-aconst
expartial-ex-aconst exnc-exncpartial-aconst exncpartial-exnc-aconst
conflict with Total being c.r. and are discarded.
idpc-clause-to-rec-premises added. non-computational-invariant?
extended to inductively defined connectives.
theorem-or-global-assumption-name-to-pconst-name changed:
RatTimesTotal maps to RatTimes, not cRatTimesTotal. add-theorem
adapted to the case where the theorem name ends with Total.
add-global-assumption accepts a string as argument, which is parsed

into a formula. Suffix Real (for realize) changed to MR.


-----------------------------------------------------------------------r2534 | schwicht | 2012-03-13 23:03:25 +0100 (Tue, 13 Mar 2012) | 1 line
STotal removed and TotalMR added predconst-names.
-----------------------------------------------------------------------r2533 | schwicht | 2012-03-13 23:02:47 +0100 (Tue, 13 Mar 2012) | 5 lines
make-totalmr added. formula-substitute extended to predconst TotalMR.
make-stotal removed. unfold-formula now unfolds (Total r) via
term-to-totality-formula and (TotalMR r0 r) via
terms-to-mr-totality-formula. rename-variables-aux simplified for
identity substitutions. formula-subst-and-beta0-nf added.
-----------------------------------------------------------------------r2532 | schwicht | 2012-03-13 23:02:17 +0100 (Tue, 13 Mar 2012) | 27 lines
Suffix Real (for realize) changed to MR. terms-to-mr-totality-formula
alg-to-mr-totality-idpredconst and
alg-name-to-mr-totality-idpredconst-name added.
string-and-arity-to-predconst-parse-function rewritten with
formula-substitute, to parse Total and (arity nat) into TotalNat.
check-idpredconst added, as test function for idpredconsts. If the
argument is not an idpredconst, an error is returned.
idpredconst-name-to-tvars corrected for mr-idpcs. We must distinguish
whether we have an original idpc or an mr-idpc. In the former case
take orig-idpredconst-name-to-tvars, i.e., the tvars in the original
clauses. In the latter case from et-types take all tvars associated
to param-pvars. These mr-tvars are appended in front of orig-tvars.
add-ids-aux adapted: param-tvars and param-pvars are only computed
after idpc-names are added to IDS. This enables the new
idpredconst-name-to-tvars (which distinguishes original idpc-names and
mr-idpc-names) to produce correct results. add-mr-ids corrected.
cr-param-pvars and ci-param-pvars treated differently. Its auxiliary
functions formula-to-et-type-for-mr-clauses and
real-and-idpc-clause-to-mr-idpc-clause both need additional arguments
mr-et-tvars and idpc-pvars. Notice that the general
real-and-formula-to-mr-formula-aux does not need these additional
arguments mr-et-tvars and idpc-pvars: in the pvar case the h-deg of
the pvar suffices. term-to-totality-formula and
term-to-stotality-formula corrected for terms with type in star form.
In real-and-idpc-clause-to-mr-idpc-clause and
formula-to-et-type-for-mr-clauses in the predconst case the predconst
Total (which is c.r.) gets a special treatment.
-----------------------------------------------------------------------r2531 | schwicht | 2012-03-13 23:01:38 +0100 (Tue, 13 Mar 2012) | 4 lines
token-tree-to-string extended to tokens case-op and caseitem-op.
Auxiliary function token-tree-tag-to-precedence added.
token-tree-to-pp-tree added. pretty-print-with-case-display
(abbreviated ppc) added.
-----------------------------------------------------------------------r2530 | schwicht | 2012-03-13 23:00:14 +0100 (Tue, 13 Mar 2012) | 14 lines
app-term-with-low-original-types? added. It is used in
term-to-token-tree, to display coercions where the strategy of doing
arthmetical operations at the lowest possible level has not been
observed. Example: (IntPlus pos n) has this display, not (pos+n).
The pconst RealPos does not appear, since it has no special display.
formula-to-token-tree need not be changed, since a prime formula is
either given by a boolean term or else has no special display

(examples: RealEq RealNNeg RealLe). default-term-to-token-tree in


case term-in-if-form and a newly introduced global variable
CASE-DISPLAY is true returns a token tree with case-op, which includes
token trees with case-item. In term-to-expr NatMax and NatMin etc
allowed. term-in-rec-normal-form? corrected. term-to-rec-nf added.
match-aux extended to match Total xs with TotalList ns.
huet-unifiers-rigid-rigid extended similarly.
-----------------------------------------------------------------------r2529 | schwicht | 2012-03-13 22:59:46 +0100 (Tue, 13 Mar 2012) | 7 lines
display-pconst corrected for external code. In add-rewrite-rule
reference (via make-eq) to the obsolete predicate constant Equal
removed. In change-t-deg-to-one usage of (term-to-string lhs)
replaced by (token-tree-to-string (default-term-to-token-tree lhs)).
This avoids disappearance of coercion functions like NatToInt, which
can lead to type errors in subsequent parsing. In destruct-at wrong
parenthesis moved to the right place.
-----------------------------------------------------------------------r2528 | schwicht | 2012-03-13 22:59:08 +0100 (Tue, 13 Mar 2012) | 5 lines
TotalMR added as reserved name. check-admissible-tpsubst added, as
test function for tpsubsts. If the argument is not an admissible
tpsubst, an error is returned. type-match-modulo-coercion-aux
corrected. For the rigid components of the type type-le? had to be
used in the ~other direction.
-----------------------------------------------------------------------r2527 | schwicht | 2012-03-13 22:58:09 +0100 (Tue, 13 Mar 2012) | 1 line
list-and-test-to-head-up-to-last added.
-----------------------------------------------------------------------r2526 | schwicht | 2012-03-13 22:57:16 +0100 (Tue, 13 Mar 2012) | 1 line
Theory of spreading, wiping and isolating formulas included.
-----------------------------------------------------------------------r2525 | miyamoto | 2011-10-10 20:10:43 +0200 (Mon, 10 Oct 2011) | 3 lines
The latest minitab.scm from the latest grammar.scm.
In pconst.scm, a bug in destruct-at fixed.
-----------------------------------------------------------------------r2524 | schwicht | 2011-08-27 16:52:09 +0200 (Sat, 27 Aug 2011) | 1 line
Updated
-----------------------------------------------------------------------r2523 | schwicht | 2011-08-27 16:50:59 +0200 (Sat, 27 Aug 2011) | 2 lines
Proof of totality of Test updated. Totality predicate for the algebra
par added.
-----------------------------------------------------------------------r2522 | schwicht | 2011-08-27 16:49:53 +0200 (Sat, 27 Aug 2011) | 4 lines
Adapted to the the new convention in psym.scm: in add-ids
et-constr-names written with capital C followed by the clause name
(like CInitEv) to avoid clash with program constants for the
clause-theorems. Hence we need CGenQ rather than cGenQ.
-----------------------------------------------------------------------r2521 | schwicht | 2011-08-14 15:32:47 +0200 (Sun, 14 Aug 2011) | 1 line
Initial commit
------------------------------------------------------------------------

r2520 | schwicht | 2011-08-14 14:52:24 +0200 (Sun, 14 Aug 2011) | 1 line


Updated
-----------------------------------------------------------------------r2519 | schwicht | 2011-08-14 14:51:41 +0200 (Sun, 14 Aug 2011) | 1 line
Extended.
-----------------------------------------------------------------------r2518 | schwicht | 2011-08-14 14:50:33 +0200 (Sun, 14 Aug 2011) | 1 line
Major extension, and adaption to the present state.
-----------------------------------------------------------------------r2517 | schwicht | 2011-08-14 14:49:12 +0200 (Sun, 14 Aug 2011) | 1 line
For tutor.tex second call to pdflatex and dependencies added.
-----------------------------------------------------------------------r2516 | schwicht | 2011-08-14 14:48:26 +0200 (Sun, 14 Aug 2011) | 1 line
Updated, and sychronized with examples/tutor.scm.
-----------------------------------------------------------------------r2515 | schwicht | 2011-08-14 14:47:03 +0200 (Sun, 14 Aug 2011) | 1 line
Adapted to list.scm (not listrev.scm which should be removed).
-----------------------------------------------------------------------r2514 | schwicht | 2011-08-14 14:46:29 +0200 (Sun, 14 Aug 2011) | 1 line
Adapted to list.scm (not listrev.scm which should be removed).
-----------------------------------------------------------------------r2513 | schwicht | 2011-08-14 14:45:21 +0200 (Sun, 14 Aug 2011) | 1 line
Major cleanup and extension.
-----------------------------------------------------------------------r2512 | schwicht | 2011-08-14 14:44:38 +0200 (Sun, 14 Aug 2011) | 6 lines
atom-to-eqd-true-aconst and eqd-true-to-atom-aconst added.
formula-to-et-type for the predicate constant Total_rho returns rho.
idpredconst-to-et-type corrected: et-types must use all clauses. In
number-and-idpredconst-to-et-constr-term et-constr-names written with
capital C followed by the clause name (like CInitEv) to avoid clash
with program constants for the clause-theorems.
-----------------------------------------------------------------------r2511 | schwicht | 2011-08-14 14:44:09 +0200 (Sun, 14 Aug 2011) | 8 lines
by-assume and by-assume-intern extended to the inductively defined
existential quantifiers exd, exr, exl, exu. exnc marked as obsolete.
It can be replaced by exr. Display function for display-num-goal now
has as default case (lambda (fla) (rename-variables (fold-formula
fla))). STotal as a premise in ind and simind and cases and casedist
with a partial variable removed: one should use elim instead.
dec-stotal-cases-proof removed. coind-intern corrected in the
simultaneous case.
-----------------------------------------------------------------------r2510 | schwicht | 2011-08-14 14:43:41 +0200 (Sun, 14 Aug 2011) | 2 lines
proof-substitute changed to avoid superfluous renaming (work of Anton
Freund).
-----------------------------------------------------------------------r2509 | schwicht | 2011-08-14 14:43:14 +0200 (Sun, 14 Aug 2011) | 14 lines
check-aconst adapted to atom-to-eqd-true-aconst and

eqd-true-to-atom-aconst. Both all-allpartial-aconst and


allpartial-all-aconst written with allnc alpha^(Total alpha^ -> (Pvar
alpha)alpha^) rather than with all alpha^(Total alpha^ -> (Pvar
alpha)alpha^). This is necessary since the predicate constant Total
is c.r. In all-formulas-to-uninst-imp-formulas-and-tpsubst only
all-formulas with total variables are allowed. stotal-imp-formula?
stotal-or-se-imp-formula? stotal-or-se-or-e-imp-formula?
all-partial-stotal-imp-formula? marked as obsolete.
imp-formulas-to-uninst-gfp-formulas-etc corrected in the simultaneous
case: all clauses are needed, and the original ordering of the idpcs
needs to be introduced at various places (corrections due to Kenji
Miyamoto). In add-theorem totality-flag is used to indicate that no
proof of totality is needed.
-----------------------------------------------------------------------r2508 | schwicht | 2011-08-14 14:42:45 +0200 (Sun, 14 Aug 2011) | 3 lines
Token and display for desyprod (destructor w.r.t. yprod) added.
term-to-components rewritten. It now works for the primitive product
(via make-star) as well as for the defined product (via make-yprod).
-----------------------------------------------------------------------r2507 | schwicht | 2011-08-14 14:41:53 +0200 (Sun, 14 Aug 2011) | 3 lines
make-eq marked as obsolete. mk-and rewritten. make-and-without-truth
added. In formula-substitute the predicate form Total r now uses
term-to-totality-formula for the substituted term r.
-----------------------------------------------------------------------r2506 | schwicht | 2011-08-14 14:41:21 +0200 (Sun, 14 Aug 2011) | 2 lines
pretty-print-string uses rename-variables for names of theorems or
global-assumptions.
-----------------------------------------------------------------------r2505 | schwicht | 2011-08-14 14:40:55 +0200 (Sun, 14 Aug 2011) | 3 lines
nbe-mk-prod-obj added. rec-op-and-args-to-if-term rewritten.
simplify-simrec-appterm corrected: alg-names-with-val-tvars should
remain in the order given by the recursion operator.
-----------------------------------------------------------------------r2504 | schwicht | 2011-08-14 14:40:06 +0200 (Sun, 14 Aug 2011) | 22 lines
clauses-with-idpc-pvars-to-nullary-clauses added. It is used in
add-ids to check that nullary clauses are present (and might be used
in formula-to-efq-proof to construct such a proof for an idpc). In
add-ids-aux total program constants for the clause-theorems added. In
add-ids et-constr-names written with capital C followed by the clause
name (like CInitEv) to avoid clash with program constants for the
clause-theorems. term-to-totality-formula extended to terms of type
in star form. add-stotality and its auxiliary function
alg-name-to-stotality-clauses-and-pvars removed. Instead one should
use add-ids with the proper clauses for e.g. STotalList. Then one can
provide a known alg name (nat in this case).
term-to-stotality-formula rewritten. For an sfinalg it uses STotalAlg
rather than TotalAlg, assuming STotalAlg exists (otherwise: error) In
alg-name-to-totality-clauses-and-pvars pvar name totality-idpc-name
replaced by the empty string. In add-totality double occurrence of
constr-names-list removed. display-idpc added. remove-idpc-name
corrected (more was to be removed). add-co takes an optional argument
opt-prim-prod-flag. If this is not present or true, the clause is
formed with mk-ex, mk-and (generating extracted terms with the
primitive product make-star). If this is present and #f, the clause
is formed with mk-exi, mk-andu, mk-andd (generating extracted terms

with the defined product yprod)


-----------------------------------------------------------------------r2503 | schwicht | 2011-08-14 14:39:33 +0200 (Sun, 14 Aug 2011) | 17 lines
In add-program-constant an optional totality-flag can indicate that no
proof of totality is needed. display-pconst added. It replaces
display-program-constants and display-program-constant. Terminology
in arrow-types-to-uninst-recop-types-and-tsubst clarified.
alg-or-arrow-types-to-uninst-corecop-types-and-tsubst corrected in the
simultaneous case: the uninst-step-types need to be taken in their
original order (correction due to Kenji Miyamoto). In
corec-const-and-bound-to-bcorec-term again in the simultaneous case
the resulting application term of product type (with a recursion
constant as operator) is replaced by an appropriate component. This
makes both bcorec-term-and-alg-name-to-component and
bcorec-term-and-alg-name-to-component-aux (which were originally
intended for this purpose) superfluous. They are discarded.
display-constructors renamed into display-alg and moved to typ.scm.
undelay-delayed-corec corrected: terms in lcomp and rcomp form
included. alg-to-uninst-destr-type-and-tsubst alg-to-destr-const and
destruct-at all take opt-prim-prod-flag as an optional argument.
-----------------------------------------------------------------------r2502 | schwicht | 2011-08-14 14:38:49 +0200 (Sun, 14 Aug 2011) | 6 lines
mk-star added. In compose-substitutions
compose-substitutions-and-beta-nf compose-substitutions-and-beta0-nf
it is now checked that the second substitution is admissible for the
values of the first substitution (work of Anton Freund).
display-constructors renamed into display-alg and moved from
pconst.scm to typ.scm.
-----------------------------------------------------------------------r2501 | schwicht | 2011-08-14 14:38:08 +0200 (Sun, 14 Aug 2011) | 3 lines
Inductively defined predicate TotalList added. Arguments of Consn
switched: the parameter argument now comes first. Usage of
finalg-to-e-to-total-aconst removed from proofs totality theorems.
-----------------------------------------------------------------------r2500 | schwicht | 2011-08-14 14:37:32 +0200 (Sun, 14 Aug 2011) | 3 lines
Inductively defined predicate TotalNat and TotalBoole added. Usage
of finalg-to-e-to-total-aconst removed from the proof of
NatPlusTotal and other totality theorems.
-----------------------------------------------------------------------r2499 | schwicht | 2011-08-14 14:34:26 +0200 (Sun, 14 Aug 2011) | 1 line
Renamed. Was tutorial.scm
-----------------------------------------------------------------------r2498 | schwicht | 2011-06-18 16:56:23 +0200 (Sat, 18 Jun 2011) | 1 line
Updated
-----------------------------------------------------------------------r2497 | schwicht | 2011-06-18 16:55:11 +0200 (Sat, 18 Jun 2011) | 2 lines
arrow-types-to-corec-const replaced by
alg-or-arrow-types-to-corec-const
------------------------------------------------------------------------