[CL] Quantified sentences
Cameron Ross
cross at kojeware.com
Thu Dec 3 08:43:28 CST 2009
Thanks for your input John. Based on these points and the fact that, as
Pat put it, "there was a general methodological principle in the CL
design, which was to always permit rather than forbid", it is clear that
a CLIF parser must admit such cases (as per the current CLIF grammar).
I do, however, like Randall's suggestion of issuing warnings to help
identify where oversights may have occurred while constructing
handwritten CLIF text. I'll probably add a feature to my CLIF parser,
similar to gcc's -pedantic flag, that will issue such warnings when enabled.
Thanks everyone.
Cameron.
John F. Sowa wrote:
> Cameron and Randall,
>
> RS> I should point out that in my CLIF parser, I emit a warning
> > diagnostic when a quantifier binds an name not referred to
> > in the matrix. I do that because, at least for now, I'm dealing
> > mostly with hand-written CLIF and this is typically a spelling error.
>
> CR> Warning on such cases is a great idea.
>
> Yes, indeed. But that is only if you are dealing with human
> generated input.
>
> The empty cases are very common during intermediate stages
> of a theorem prover. For example, the empty clause in
> resolution theorem provers (which is falsum) is represented
> by (or) in CLIF and ~[ ] in CGIF.
>
> The verum, which is (and) in CLIF and a blank sheet or [ ]
> in CGIF, is the only axiom in systems of natural deduction,
> which include Peirce's rules for existential graphs.
>
> Another important special case is the double negation in
> CGIF: ~[ ~[ ] ], which is equivalent to (if (and) (and)).
>
> In Gentzen's system of natural deduction, the first stage
> of proving p->q is to assume the hypothesis p, carry out
> the deduction of q, and then "discharge the assumption"
> by asserting p->q.
>
> But Gentzen's method requires a complex system of bookkeeping
> (or a recursive procedure) for going off on a side proof,
> discharging the assumption, and using the result in the
> main proof.
>
> With Peirce's rules (which can operate *inside* a nested
> expression), the proofs are all done in a straight line:
>
> 1. Draw a double negation around the blank: ~[ ~[ ] ]
>
> 2. Insert the hypothesis into the negative area: ~[p ~[ ]]
>
> 3. Copy p into the doubly nested area: ~[ p ~[ p ] ]
>
> 4. Apply the rules that transform p to q inside the nested
> area.
>
> 5. The result is ~[ p ~[ q ] ], which is p->q.
>
> With some adjustments, you can apply Peirce's rules to CLIF:
>
> 1. (if (and) (and))
>
> 2. (if (and p) (and))
>
> 3. (if (and p) (and p))
>
> 4. Apply rules to generate (if (and p) (and q))
>
> 5. Simplify: (if p q)
>
> John
>
> _______________________________________________
> CL mailing list
> CL at philebus.tamu.edu
> http://philebus.tamu.edu/mailman/listinfo/cl
More information about the CL
mailing list