[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Comments to CoFI X, version 0.93



Comments to CoFI X, version 0.93

The splitting of part I into a many-sorted and a sub-sorted
part helps a lot!
I found it rather difficult to follow part III, some more words 
about the intended semantics would help.


1.3. and 3.3. Sentences

In the institution, we need sentences in which all subterms
have assigned a unique sort and all functions and predicates
have assigned a unique profile.
This can be achieved more easily by allowing not only
terms to be qualified by sorts, but also function and
predicate names to be qualified by profiles.


1.4 Satisfaction

Variable assingments are total in the present proposal.
If also partial variable assignments are allowed, the
institution remains equally expressive but the
substitution theory (and thus theorem proving)
becomes simpler (as simple as in the total case).
I see three possibilities:
1. total variable assignments  => the substitutions rule
   has to take into account definedness:
   A(x), D(t)
   ----------
     A(t)

   but the quantifier rules are as in the total case: 

   forall x.A(x)
   -------------
       A(x)

2. partial variable assignments, but quantification is
   over defined values
   ==> Simpler substitution rule
   A(x)
   ---
   A(t)

   but the quantifier rules have now to take care of
   definedness (because free variables have a semantics
   different from bound variables)

   forall x.A(x)
   -------------
   D(x) ==> A(x)

   Open axioms have to state definedness explicitly
   x,y:nat. D(x) /\ D(y) ==> x*y=y*x
   but closed axioms not:
   forall x,y:nat. x*y=y*x

3. partial variable assignments, and quantified variables
   may be undefined as well ==> same semantics for free
   and bound variables, and the simpler substitution
   rule AND simpler quantifier rules (see above)

   But now open and closed axioms have to care about definedness:
   x,y:nat. D(x) /\ D(y) ==> x*y=y*x
   forall x,y:nat. D(x) /\ D(y) ==> x*y=y*x

I prefer 2., because quantifier elimination and introduction
seems to occur less often than substitution, and 2. keeps substitution
simple. Of course, the semantics of open formulas are somewhat 
peculiar, but the axioms written down in the language could be taken to
be closed (or if open, then with semantics due to 1.), 
while open formulas (with semantics due to 2.) merely occur as intermediate
steps in the theorem proving process (but they have to be given
a semantics different to 1. if the simple substitution rule shall be sound). 

References:
D. S. Scott, Identity and Existence in Intuitionistic Logic,
Lecture Notes in Mathematics 753, pages 660-696.

L. Bachmair and H. Ganzinger, Rewrite Techniques for Transitive Relations,
Proc. 9th IEEE Symposium on Logic in Computer Science 1994,
pages 384-393.


Typo: the last symbol of 1.4 should be S', not S.


2.2.3, 2.2.4, 4.2.1, 4.2.2 Atomic formulas and terms

I would prefer to let 
- "well-sortedness" mean that a sort can
   be assigned to all subterms of a term (or a formula),
- "well-formedness" mean that the ambiguity resulting
  from having different such assignments can be resolved,
- "fully sortedness" mean that additionally each function
  and predicate symbol is qualified with a profile.

Then in the language, we may write down well-formed formulas,
the institution consists of fully (sub)sorted formulas being
special well-formed formulas, and well-formed formulas
(from the language) can be translated to fully (sub)sorted formulas
(in the institution) in a way which is unique up to
semantical equivalence.

The study note on subsorting also follows this terminology.


4.1.1 Sorts

I prefer the OBJ 3 approach:

SORT-DECL      ::= sort-decl SORT+
SUBSORT-DECL   ::= subsort-decl SORT+ leq SORT+

which allows to introduce arbitrary subsorting relations
on declared sorts. See the study note on subsorting for arguments.


4.2.2 Terms

>actually, we forbid expansions that insert cast injections
>just anove or below sort annotations

That's consistent with the study note on subsorting,
but while formulating the technical details, (most of) the 
authors of the study note find it easier to drop this
restriction and allow explicit qualification of functions
and predicates by profiles instead. Then the purpose of
this restriction (allowing to determine profiles through
qualifications) is achieved more directly.


4.4 Sort generation, 6.2 Specification expressions

An ID-MAP should allow the user also to select profiles,
but this selection cannot be made in an arbitrary way:
it has to select whole connected components wrt
the overloading relation.
See the study note on subsorting.


5. Structuring Concepts

Parameters may have fixeds parts (why?), but where is
this taken care of in section 6?


6.1 Specification libraries, 6.2 Specification expressions

Consider the extension

spec1= sorts s
spec2= enrich spec1 by 
       opns f:s->s

In a linear-section, this is o.k., while in a cyclic-section,
the empty spec is assigned to spec1 in the first iteration step,
making spec2 ill-formed.

6.3. Parameterized Specifications

PAR-INST is used but not defined.