PredImplies(a,b) ==
     --true if a =>  b in the sense of logical implication
--a = "true" =>  true
   a=true =>  true
   a=b =>  true
   false         -- added by RDJ: 12/21/82
--error()       -- for the time being

Truth table rather suggests that this implements "a or not b", i.e. "b implies a".

What is interesting, though, is the usage of PredImplies. Or rather the use of (boot meaning) of =>.

src/boot/Makenotes.tex says.
--------------------
The expression
\begin{verbatim}
 (a =>b;c) will be translated to if a then b else c or
 (COND (a b) (T c))
\end{verbatim}

If the exit is not a component of a blockof or pileof statements
then
\begin{verbatim}
a=>b will be translated to (COND (a b))
\end{verbatim}
----------------------

According to http://www.cis.upenn.edu/~matuszek/LispText/lisp-cond.html, "it is an error if none of the conditions are true, and the result of the COND is undefined".

Now in

CondAncestorP(xname,leaves,condition) ==
  -- checks for being a principal ancestor of one of the leaves
  for u in leaves repeat
    u':=first u
    ucond:=
      null rest u => true
      first rest u
    xname = u' or member(xname,first (CatEval u').4) =>
      PredImplies(ucond,condition) => return u'

the => certainly appears in a pile, but what is actually returned if

  xname = u' or member(xname,first (CatEval u').4)

is never true? My BOOT knowledge is probably not good enough to give a deterministic answer.

In fact, it's a pitty that they did not have version control 30 years back. The code looks rather strange. For example,

            if ancindex and (PredImplies(anccond,condition); true)
-- I have no idea who effectively commented out the predImplies
-- JHD 25/8/86

might have to do with the fact that PredImplies did not behave as specified. Or someone was translating that into

  if ancindex and (anccond => condition; true)

where => is used in its BOOT meaning rather than its logical meaning.

Very strange!!!

Ralf

--
You received this message because you are subscribed to the Google Groups "FriCAS - 
computer algebra system" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/fricas-devel?hl=en.

Reply via email to