As for problems with the MathSpad general-purpose structure editor "that
is particularly useful for writing articles that contain substantial
amounts of mathematical calculations" I'd contact Roland Backhouse
directly ...
http://www.cs.nott.ac.uk/~rcb/mathspad/
As for Mathematica and the associativity of Boolean equivalence. If the
Mathematica programming language can handle Boolean Algebra then it has
to "know" about ...
As for [A] and [A == true]. There is no pun whatever. Both are Boolean
expressions. Especially "true" is a Boolean constant just as "0" is a
numeric constant. It could have been named "top" or "white" of "L" as
well. The naming does not imply a meaning or interpretation! It might
equally be interpreted as <on> or <high voltage> or even <falsehood>.
Neither of the two expressions states that it is a mathematical theorem.
Such fact must always be stated in words (or special symbols not being
part of the algebra). The everywhere operator [] is part of the Boolean
algebra as presented in the Dijkstra-Scholten book. It replaces explicit
universal quantification over the statespace by point-free notation. And
it evaluates to Boolean constant "true" exactly when its argument equals
Boolean constant "true" otherwise to Boolean constant "false". Further
Boolean constant "true" is the neutral element of the Boolean
(equivalence) operator "==" , i.e. "== true" is as redundant as "+ 0" is
redundant in number theory, or as
if (a == true)
return true;
else
return false;
is in a beginner's C++ program when a is of type bool.
All of [A], [A == true], [A] == true, [A == true] == true,
[[A]], [[A == true]], [[A] == [true]], [[A == true] == [true]], ...
have the same Boolean value. But [A] is the most simple expression
amongst them.
Otherwise carefully read the preface of the Dijkstra-Scholten book where
you will find "The most important recommendation is to remember all the
time that this is NOT a treatise on logic, ..." (p. vii).
All the best, Diethard.
Am 26.08.2014 um 17:10 schrieb Jeremy Weissmann:
> I still need to remind myself every few years why it makes sense to write [A] when stating a "result" or "theorem", as opposed to [A == true] . (Usually when I'm explaining the calculational style to someone else.) It can be a tricky pun indeed!
>
>
> I think Dijkstra helpfully wrote somewhere something along the lines of: we don't say " 'p is prime' is true " , we just say "p is prime" .
>
>
>
>
> Welcome aboard, Rusi!
>
>
>
>
> +j
>
> On Tue, Aug 26, 2014 at 5:24 AM, rustompmody <
rusto...@gmail.com>
> wrote:
>
>> On Tuesday, August 26, 2014 2:08:02 PM UTC+5:30, Matthew Heaney wrote:
>>>
>>> Will Mathematica work for you?
>>>
>> Thats an interesting suggestion. I will have to look into it further
>> However I wonder...
>> Mathematica is calculational for numbers and algebra. I am looking for
>> calculational over the boolean domain.
>> Can mathematica do (or be taught) things like associativity of ≡ ?
>> At a more philosophical level, the way logic is demonstrated in
>> Dijkstra&Scholten, there is a certain characteristic
>> pun between meta and object level (which can be unnerving to traditional
>> logicians!) viz when we write
>> [A ≡ true] (which may be shortened to [A] )
>> - We (ie the human) may be making a meta-math statement that we *know* A
>> is true
>> - We may be taking an object language formula which we further explore