[HN Gopher] Computers and Automata (1953)
___________________________________________________________________
Computers and Automata (1953)
Author : BerislavLopac
Score : 63 points
Date : 2023-07-12 15:00 UTC (8 hours ago)
(HTM) web link (fermatslibrary.com)
(TXT) w3m dump (fermatslibrary.com)
| haskellandchill wrote:
| Does anyone know how to find the paper cited in the section on
| Logic Machines?
|
| McCallum D. B. and Smith J. B.. Mechanized reasoning--logical
| computers and their design.
|
| I can only find a review of it. This is an area of interest for
| me as I want to design educational logic machines to teach
| proofs.
| hedora wrote:
| This is the back matter, which seems to be a Table of Contents:
|
| https://annas-archive.org/md5/c50b9ec404b79e6a7d6ad77e9ef55f...
|
| Front matter:
|
| https://annas-archive.org/md5/e9080f059fa914cc7ae31e2790b267...
| Eisenstein wrote:
| Unfortunately I can only access volumes of 'Electronic
| Engineering' starting with Vol. 30, and the one you want is 23.
| _a_a_a_ wrote:
| https://aslonline.org/journals/the-journal-of-symbolic-logic...
|
| Contact them and ask
| _a_a_a_ wrote:
| Take a look at the abomination of HTML on that page. All 7
| megabytes of it.
| hedora wrote:
| PDF version:
|
| https://webmuseum.mit.edu/files/2007.030.010-ref1.pdf
| _a_a_a_ wrote:
| "It is known that salesmen always tell the truth and engi- neers
| always tell lies. G and E are salesmen. C states that D is an
| engineer. A declares that B affirms that C asserts that D says
| that E insists that F denies that G is a sales- man. If A is an
| engineer, how many engineers are there?"
|
| Now that is a curious puzzle in the sense that I can't think how
| to express it in Prolog. You'd need to assert the truth of
| assertions which implies quantifying over assertions, and Prolog
| doesn't allow that. I'm sure I'm making this much more complex
| than it need be, there has to be a much more straightforward way,
| any ideas please?
| triska wrote:
| The article suggests using Boolean logic, so let's apply it:
| One way to solve this is to introduce a Boolean variable for
| each of A,...,G, and to use 1 to denote that a statement is
| true, and also to denote that the corresponding person tells
| the truth. It then remains to relate the truth of each
| statement to the truthfulness of the person making the
| statement.
|
| In Prolog, we can express these relations with CLP(B),
| constraint logic programming over Boolean variables:
| ?- use_module(library(clpb)). true. ?-
| sat(G), sat(E), sat(C =:= ~D),
| sat(A =:= (B =:= (C =:= (D =:= (E =:= (F =:= ~G)))))),
| sat(~A), labeling([A,B,C,D,E,F,G]).
|
| Yielding 4 solutions that satisfy all constraints:
| G = 1, E = 1, C = 0, D = 1, A = 0, B = 0, F = 1 ; G =
| 1, E = 1, C = 0, D = 1, A = 0, B = 1, F = 0 ; G = 1, E
| = 1, C = 1, D = 0, A = 0, B = 0, F = 1 ; G = 1, E = 1,
| C = 1, D = 0, A = 0, B = 1, F = 0.
|
| From this, it is clear that there are 3 engineers, in all
| possible situations consistent with the description.
|
| If we omit the labeling/1 goal which enumerates all solutions,
| then we get a symbolic representation of all remaining
| constraints: G = 1, E = 1, A = 0,
| clpb:sat(C=:=D#B#F), clpb:sat(C=\=D).
|
| From this, it is clear that there are at least 2 engineers in
| every solution: A (as stated in the description of the puzzle),
| and either C or D (but not both).
|
| Tested with Scryer Prolog.
___________________________________________________________________
(page generated 2023-07-12 23:01 UTC)