MIT/GNU Scheme running under GNU/Linux Type `^C' (control-C) followed by `H' to obtain information about interrupts. Copyright 2003 Massachusetts Institute of Technology. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Image saved on Friday October 31, 2003 at 9:25:18 PM Release 7.7.90 || Microcode 14.11 || Runtime 15.3 || SF 4.41 || LIAR 4.116 Edwin 3.114 1 ]=> ;Loading "test_all.scm" ;Loading "fritz.scm" ;Loading "identifiers.scm" -- done ;Loading "primer.scm" -- done -- done ; Author: Paul Fitzpatrick, paulfitz@ai.mit.edu ; Copyright (c) 2004 Paul Fitzpatrick ; ; This file is part of CosmicOS. ; ; CosmicOS is free software; you can redistribute it and / or modify ; it under the terms of the GNU General Public License as published by ; the Free Software Foundation; either version 2 of the License, or ; (at your option) any later version. ; ; CosmicOS is distributed in the hope that it will be useful, ; but WITHOUT ANY WARRANTY; without even the implied warranty of ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; GNU General Public License for more details. ; ; You should have received a copy of the GNU General Public License ; along with CosmicOS; if not, write to the Free Software ; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ; ; MATH introduce numbers (in unary notation) ; Here we count up, then count down, then go through primes, etc. ; There is a bunch of syntax around the numbers, but that ; can just be treated as noise at this point - it doesn't matter. ; Any 'words' written here are converted to arbitrary integers ; in the actual message. Any word ending in -in-unary will be given ; in unary rather than the binary code used in the main body ; of the message - this is simpler to start with. Expression: (1 1) Translation: (cos-intro 1) ok Expression: (1 2) Translation: (cos-intro 2) ok Expression: (1 3) Translation: (cos-intro 3) ok Expression: (1 4) Translation: (cos-intro 4) ok Expression: (1 5) Translation: (cos-intro 5) ok Expression: (1 6) Translation: (cos-intro 6) ok Expression: (1 7) Translation: (cos-intro 7) ok Expression: (1 8) Translation: (cos-intro 8) ok Expression: (1 9) Translation: (cos-intro 9) ok Expression: (1 10) Translation: (cos-intro 10) ok Expression: (1 11) Translation: (cos-intro 11) ok Expression: (1 12) Translation: (cos-intro 12) ok Expression: (1 13) Translation: (cos-intro 13) ok Expression: (1 14) Translation: (cos-intro 14) ok Expression: (1 15) Translation: (cos-intro 15) ok Expression: (1 16) Translation: (cos-intro 16) ok Expression: (1 17) Translation: (cos-intro 17) ok Expression: (1 18) Translation: (cos-intro 18) ok Expression: (1 19) Translation: (cos-intro 19) ok Expression: (1 20) Translation: (cos-intro 20) ok Expression: (1 21) Translation: (cos-intro 21) ok Expression: (1 22) Translation: (cos-intro 22) ok Expression: (1 23) Translation: (cos-intro 23) ok Expression: (1 24) Translation: (cos-intro 24) ok Expression: (1 25) Translation: (cos-intro 25) ok Expression: (1 26) Translation: (cos-intro 26) ok Expression: (1 27) Translation: (cos-intro 27) ok Expression: (1 26) Translation: (cos-intro 26) ok Expression: (1 25) Translation: (cos-intro 25) ok Expression: (1 24) Translation: (cos-intro 24) ok Expression: (1 23) Translation: (cos-intro 23) ok Expression: (1 22) Translation: (cos-intro 22) ok Expression: (1 21) Translation: (cos-intro 21) ok Expression: (1 20) Translation: (cos-intro 20) ok Expression: (1 19) Translation: (cos-intro 19) ok Expression: (1 18) Translation: (cos-intro 18) ok Expression: (1 17) Translation: (cos-intro 17) ok Expression: (1 16) Translation: (cos-intro 16) ok Expression: (1 15) Translation: (cos-intro 15) ok Expression: (1 14) Translation: (cos-intro 14) ok Expression: (1 13) Translation: (cos-intro 13) ok Expression: (1 12) Translation: (cos-intro 12) ok Expression: (1 11) Translation: (cos-intro 11) ok Expression: (1 10) Translation: (cos-intro 10) ok Expression: (1 9) Translation: (cos-intro 9) ok Expression: (1 8) Translation: (cos-intro 8) ok Expression: (1 7) Translation: (cos-intro 7) ok Expression: (1 6) Translation: (cos-intro 6) ok Expression: (1 5) Translation: (cos-intro 5) ok Expression: (1 4) Translation: (cos-intro 4) ok Expression: (1 3) Translation: (cos-intro 3) ok Expression: (1 2) Translation: (cos-intro 2) ok Expression: (1 1) Translation: (cos-intro 1) ok Expression: (1 2) Translation: (cos-intro 2) ok Expression: (1 3) Translation: (cos-intro 3) ok Expression: (1 5) Translation: (cos-intro 5) ok Expression: (1 7) Translation: (cos-intro 7) ok Expression: (1 11) Translation: (cos-intro 11) ok Expression: (1 13) Translation: (cos-intro 13) ok Expression: (1 17) Translation: (cos-intro 17) ok Expression: (1 19) Translation: (cos-intro 19) ok Expression: (1 23) Translation: (cos-intro 23) ok Expression: (1 1) Translation: (cos-intro 1) ok Expression: (1 4) Translation: (cos-intro 4) ok Expression: (1 9) Translation: (cos-intro 9) ok Expression: (1 16) Translation: (cos-intro 16) ok Expression: (1 25) Translation: (cos-intro 25) ok Expression: (1 1) Translation: (cos-intro 1) ok Expression: (1 8) Translation: (cos-intro 8) ok Expression: (1 27) Translation: (cos-intro 27) ok ; MATH introduce equality for unary numbers ; The intro operator does nothing essential, and could be ; omitted - it just tags the first use of a new operator. ; The = operator is introduced alongside a duplication of ; unary numbers. The meaning will not quite by nailed down ; until we see other relational operators. Expression: (2 1 1) Translation: ((cos-= 1) 1) ok Expression: (2 2 2) Translation: ((cos-= 2) 2) ok Expression: (2 3 3) Translation: ((cos-= 3) 3) ok Expression: (2 4 4) Translation: ((cos-= 4) 4) ok Expression: (2 5 5) Translation: ((cos-= 5) 5) ok Expression: (2 6 6) Translation: ((cos-= 6) 6) ok Expression: (2 7 7) Translation: ((cos-= 7) 7) ok Expression: (2 8 8) Translation: ((cos-= 8) 8) ok Expression: (2 1 1) Translation: ((cos-= 1) 1) ok Expression: (2 6 6) Translation: ((cos-= 6) 6) ok Expression: (2 2 2) Translation: ((cos-= 2) 2) ok ; MATH now introduce other relational operators ; After this lesson, it should be clear what contexts ; < > and = are appropriate in. Expression: (3 6 2) Translation: ((cos-> 6) 2) ok Expression: (3 2 0) Translation: ((cos-> 2) 0) ok Expression: (3 1 0) Translation: ((cos-> 1) 0) ok Expression: (3 3 1) Translation: ((cos-> 3) 1) ok Expression: (3 1 0) Translation: ((cos-> 1) 0) ok Expression: (3 4 0) Translation: ((cos-> 4) 0) ok Expression: (3 1 0) Translation: ((cos-> 1) 0) ok Expression: (3 2 0) Translation: ((cos-> 2) 0) ok Expression: (3 1 0) Translation: ((cos-> 1) 0) ok Expression: (3 6 0) Translation: ((cos-> 6) 0) ok Expression: (3 2 0) Translation: ((cos-> 2) 0) ok Expression: (4 2 4) Translation: ((cos-< 2) 4) ok Expression: (4 0 6) Translation: ((cos-< 0) 6) ok Expression: (4 3 6) Translation: ((cos-< 3) 6) ok Expression: (4 0 3) Translation: ((cos-< 0) 3) ok Expression: (4 2 4) Translation: ((cos-< 2) 4) ok Expression: (4 0 2) Translation: ((cos-< 0) 2) ok Expression: (4 2 4) Translation: ((cos-< 2) 4) ok Expression: (4 1 3) Translation: ((cos-< 1) 3) ok Expression: (4 2 6) Translation: ((cos-< 2) 6) ok Expression: (4 2 5) Translation: ((cos-< 2) 5) ok Expression: (4 0 5) Translation: ((cos-< 0) 5) ok ; drive the lesson home Expression: (2 0 0) Translation: ((cos-= 0) 0) ok Expression: (4 0 1) Translation: ((cos-< 0) 1) ok Expression: (4 0 2) Translation: ((cos-< 0) 2) ok Expression: (3 1 0) Translation: ((cos-> 1) 0) ok Expression: (2 1 1) Translation: ((cos-= 1) 1) ok Expression: (4 1 2) Translation: ((cos-< 1) 2) ok Expression: (3 2 0) Translation: ((cos-> 2) 0) ok Expression: (3 2 1) Translation: ((cos-> 2) 1) ok Expression: (2 2 2) Translation: ((cos-= 2) 2) ok ; switch to binary labelling Expression: (2 0 0) Translation: ((cos-= 0) 0) ok Expression: (4 0 1) Translation: ((cos-< 0) 1) ok Expression: (4 0 2) Translation: ((cos-< 0) 2) ok Expression: (3 1 0) Translation: ((cos-> 1) 0) ok Expression: (2 1 1) Translation: ((cos-= 1) 1) ok Expression: (4 1 2) Translation: ((cos-< 1) 2) ok Expression: (3 2 0) Translation: ((cos-> 2) 0) ok Expression: (3 2 1) Translation: ((cos-> 2) 1) ok Expression: (2 2 2) Translation: ((cos-= 2) 2) ok ; a few more random examples Expression: (3 5 1) Translation: ((cos-> 5) 1) ok Expression: (3 5 2) Translation: ((cos-> 5) 2) ok Expression: (3 5 1) Translation: ((cos-> 5) 1) ok Expression: (3 4 0) Translation: ((cos-> 4) 0) ok Expression: (4 2 4) Translation: ((cos-< 2) 4) ok Expression: (4 2 3) Translation: ((cos-< 2) 3) ok Expression: (4 1 3) Translation: ((cos-< 1) 3) ok Expression: (4 4 5) Translation: ((cos-< 4) 5) ok Expression: (4 0 5) Translation: ((cos-< 0) 5) ok Expression: (4 3 4) Translation: ((cos-< 3) 4) ok Expression: (4 1 3) Translation: ((cos-< 1) 3) ok ; MATH introduce the NOT logical operator Expression: (1 8) Translation: (cos-intro 8) ok Expression: (2 3 3) Translation: ((cos-= 3) 3) ok Expression: (8 -1 4 3 3) Translation: (cos-not ((cos-< 3) 3)) ok Expression: (8 -1 3 3 3) Translation: (cos-not ((cos-> 3) 3)) ok Expression: (2 1 1) Translation: ((cos-= 1) 1) ok Expression: (8 -1 4 1 1) Translation: (cos-not ((cos-< 1) 1)) ok Expression: (8 -1 3 1 1) Translation: (cos-not ((cos-> 1) 1)) ok Expression: (2 2 2) Translation: ((cos-= 2) 2) ok Expression: (8 -1 4 2 2) Translation: (cos-not ((cos-< 2) 2)) ok Expression: (8 -1 3 2 2) Translation: (cos-not ((cos-> 2) 2)) ok Expression: (2 4 4) Translation: ((cos-= 4) 4) ok Expression: (8 -1 4 4 4) Translation: (cos-not ((cos-< 4) 4)) ok Expression: (8 -1 3 4 4) Translation: (cos-not ((cos-> 4) 4)) ok Expression: (2 3 3) Translation: ((cos-= 3) 3) ok Expression: (8 -1 4 3 3) Translation: (cos-not ((cos-< 3) 3)) ok Expression: (8 -1 3 3 3) Translation: (cos-not ((cos-> 3) 3)) ok Expression: (2 2 2) Translation: ((cos-= 2) 2) ok Expression: (8 -1 4 2 2) Translation: (cos-not ((cos-< 2) 2)) ok Expression: (8 -1 3 2 2) Translation: (cos-not ((cos-> 2) 2)) ok Expression: (8 -1 2 3 4) Translation: (cos-not ((cos-= 3) 4)) ok Expression: (4 3 4) Translation: ((cos-< 3) 4) ok Expression: (8 -1 3 3 4) Translation: (cos-not ((cos-> 3) 4)) ok Expression: (8 -1 2 5 8) Translation: (cos-not ((cos-= 5) 8)) ok Expression: (4 5 8) Translation: ((cos-< 5) 8) ok Expression: (8 -1 3 5 8) Translation: (cos-not ((cos-> 5) 8)) ok Expression: (8 -1 2 2 4) Translation: (cos-not ((cos-= 2) 4)) ok Expression: (4 2 4) Translation: ((cos-< 2) 4) ok Expression: (8 -1 3 2 4) Translation: (cos-not ((cos-> 2) 4)) ok Expression: (8 -1 2 0 1) Translation: (cos-not ((cos-= 0) 1)) ok Expression: (4 0 1) Translation: ((cos-< 0) 1) ok Expression: (8 -1 3 0 1) Translation: (cos-not ((cos-> 0) 1)) ok Expression: (8 -1 2 0 3) Translation: (cos-not ((cos-= 0) 3)) ok Expression: (4 0 3) Translation: ((cos-< 0) 3) ok Expression: (8 -1 3 0 3) Translation: (cos-not ((cos-> 0) 3)) ok Expression: (8 -1 2 0 2) Translation: (cos-not ((cos-= 0) 2)) ok Expression: (4 0 2) Translation: ((cos-< 0) 2) ok Expression: (8 -1 3 0 2) Translation: (cos-not ((cos-> 0) 2)) ok Expression: (8 -1 2 2 0) Translation: (cos-not ((cos-= 2) 0)) ok Expression: (3 2 0) Translation: ((cos-> 2) 0) ok Expression: (8 -1 4 2 0) Translation: (cos-not ((cos-< 2) 0)) ok Expression: (8 -1 2 5 3) Translation: (cos-not ((cos-= 5) 3)) ok Expression: (3 5 3) Translation: ((cos-> 5) 3) ok Expression: (8 -1 4 5 3) Translation: (cos-not ((cos-< 5) 3)) ok Expression: (8 -1 2 6 4) Translation: (cos-not ((cos-= 6) 4)) ok Expression: (3 6 4) Translation: ((cos-> 6) 4) ok Expression: (8 -1 4 6 4) Translation: (cos-not ((cos-< 6) 4)) ok Expression: (8 -1 2 4 3) Translation: (cos-not ((cos-= 4) 3)) ok Expression: (3 4 3) Translation: ((cos-> 4) 3) ok Expression: (8 -1 4 4 3) Translation: (cos-not ((cos-< 4) 3)) ok Expression: (8 -1 2 7 5) Translation: (cos-not ((cos-= 7) 5)) ok Expression: (3 7 5) Translation: ((cos-> 7) 5) ok Expression: (8 -1 4 7 5) Translation: (cos-not ((cos-< 7) 5)) ok Expression: (8 -1 2 8 5) Translation: (cos-not ((cos-= 8) 5)) ok Expression: (3 8 5) Translation: ((cos-> 8) 5) ok Expression: (8 -1 4 8 5) Translation: (cos-not ((cos-< 8) 5)) ok ; MATH introduce the AND logical operator Expression: (1 13) Translation: (cos-intro 13) ok Expression: (13 (2 2 2) (2 3 3)) Translation: ((cos-and ((cos-= 2) 2)) ((cos-= 3) 3)) ok Expression: (13 (3 5 2) (3 5 4)) Translation: ((cos-and ((cos-> 5) 2)) ((cos-> 5) 4)) ok Expression: (13 (2 5 5) (2 4 4)) Translation: ((cos-and ((cos-= 5) 5)) ((cos-= 4) 4)) ok Expression: (13 (4 0 1) (2 5 5)) Translation: ((cos-and ((cos-< 0) 1)) ((cos-= 5) 5)) ok Expression: (13 (3 4 3) (2 4 4)) Translation: ((cos-and ((cos-> 4) 3)) ((cos-= 4) 4)) ok Expression: (13 (4 5 8) (4 1 3)) Translation: ((cos-and ((cos-< 5) 8)) ((cos-< 1) 3)) ok Expression: (13 (3 6 5) (3 7 5)) Translation: ((cos-and ((cos-> 6) 5)) ((cos-> 7) 5)) ok Expression: (13 (3 5 3) (3 7 4)) Translation: ((cos-and ((cos-> 5) 3)) ((cos-> 7) 4)) ok Expression: (13 (4 3 4) (2 1 1)) Translation: ((cos-and ((cos-< 3) 4)) ((cos-= 1) 1)) ok Expression: (13 (4 5 6) (2 0 0)) Translation: ((cos-and ((cos-< 5) 6)) ((cos-= 0) 0)) ok Expression: (8 -1 13 (3 4 1) (3 1 4)) Translation: (cos-not ((cos-and ((cos-> 4) 1)) ((cos-> 1) 4))) ok Expression: (8 -1 13 (4 2 4) (2 2 5)) Translation: (cos-not ((cos-and ((cos-< 2) 4)) ((cos-= 2) 5))) ok Expression: (8 -1 13 (4 5 7) (2 1 0)) Translation: (cos-not ((cos-and ((cos-< 5) 7)) ((cos-= 1) 0))) ok Expression: (8 -1 13 (3 4 3) (4 5 2)) Translation: (cos-not ((cos-and ((cos-> 4) 3)) ((cos-< 5) 2))) ok Expression: (8 -1 13 (2 2 2) (3 1 1)) Translation: (cos-not ((cos-and ((cos-= 2) 2)) ((cos-> 1) 1))) ok Expression: (8 -1 13 (4 5 3) (3 7 4)) Translation: (cos-not ((cos-and ((cos-< 5) 3)) ((cos-> 7) 4))) ok Expression: (8 -1 13 (3 0 1) (4 3 5)) Translation: (cos-not ((cos-and ((cos-> 0) 1)) ((cos-< 3) 5))) ok Expression: (8 -1 13 (4 5 2) (3 5 3)) Translation: (cos-not ((cos-and ((cos-< 5) 2)) ((cos-> 5) 3))) ok Expression: (8 -1 13 (4 6 4) (2 4 4)) Translation: (cos-not ((cos-and ((cos-< 6) 4)) ((cos-= 4) 4))) ok Expression: (8 -1 13 (4 3 2) (3 6 4)) Translation: (cos-not ((cos-and ((cos-< 3) 2)) ((cos-> 6) 4))) ok Expression: (8 -1 13 (4 2 1) (2 2 0)) Translation: (cos-not ((cos-and ((cos-< 2) 1)) ((cos-= 2) 0))) ok Expression: (8 -1 13 (3 1 1) (4 4 0)) Translation: (cos-not ((cos-and ((cos-> 1) 1)) ((cos-< 4) 0))) ok Expression: (8 -1 13 (4 6 2) (3 4 5)) Translation: (cos-not ((cos-and ((cos-< 6) 2)) ((cos-> 4) 5))) ok Expression: (8 -1 13 (4 5 2) (2 5 0)) Translation: (cos-not ((cos-and ((cos-< 5) 2)) ((cos-= 5) 0))) ok Expression: (8 -1 13 (3 3 3) (3 1 5)) Translation: (cos-not ((cos-and ((cos-> 3) 3)) ((cos-> 1) 5))) ok Expression: (13 (4 3 5) (4 1 3)) Translation: ((cos-and ((cos-< 3) 5)) ((cos-< 1) 3)) ok Expression: (13 (3 3 1) (4 2 4)) Translation: ((cos-and ((cos-> 3) 1)) ((cos-< 2) 4)) ok Expression: (8 -1 13 (4 0 3) (2 4 0)) Translation: (cos-not ((cos-and ((cos-< 0) 3)) ((cos-= 4) 0))) ok Expression: (8 -1 13 (2 0 5) (3 1 1)) Translation: (cos-not ((cos-and ((cos-= 0) 5)) ((cos-> 1) 1))) ok Expression: (8 -1 13 (4 6 1) (3 3 0)) Translation: (cos-not ((cos-and ((cos-< 6) 1)) ((cos-> 3) 0))) ok Expression: (8 -1 13 (2 4 4) (3 2 2)) Translation: (cos-not ((cos-and ((cos-= 4) 4)) ((cos-> 2) 2))) ok Expression: (13 (4 5 7) (2 4 4)) Translation: ((cos-and ((cos-< 5) 7)) ((cos-= 4) 4)) ok Expression: (8 -1 13 (3 4 2) (3 0 6)) Translation: (cos-not ((cos-and ((cos-> 4) 2)) ((cos-> 0) 6))) ok Expression: (8 -1 13 (3 3 0) (2 4 2)) Translation: (cos-not ((cos-and ((cos-> 3) 0)) ((cos-= 4) 2))) ok Expression: (8 -1 13 (2 4 2) (2 4 3)) Translation: (cos-not ((cos-and ((cos-= 4) 2)) ((cos-= 4) 3))) ok ; MATH introduce the OR logical operator Expression: (1 14) Translation: (cos-intro 14) ok Expression: (14 (4 4 5) (3 7 5)) Translation: ((cos-or ((cos-< 4) 5)) ((cos-> 7) 5)) ok Expression: (14 (2 3 3) (4 5 7)) Translation: ((cos-or ((cos-= 3) 3)) ((cos-< 5) 7)) ok Expression: (14 (4 0 1) (3 4 1)) Translation: ((cos-or ((cos-< 0) 1)) ((cos-> 4) 1)) ok Expression: (14 (2 0 0) (4 4 5)) Translation: ((cos-or ((cos-= 0) 0)) ((cos-< 4) 5)) ok Expression: (14 (2 5 5) (2 2 2)) Translation: ((cos-or ((cos-= 5) 5)) ((cos-= 2) 2)) ok Expression: (14 (2 0 0) (2 0 0)) Translation: ((cos-or ((cos-= 0) 0)) ((cos-= 0) 0)) ok Expression: (14 (4 1 3) (3 6 5)) Translation: ((cos-or ((cos-< 1) 3)) ((cos-> 6) 5)) ok Expression: (14 (2 1 1) (3 6 4)) Translation: ((cos-or ((cos-= 1) 1)) ((cos-> 6) 4)) ok Expression: (14 (3 3 0) (3 7 4)) Translation: ((cos-or ((cos-> 3) 0)) ((cos-> 7) 4)) ok Expression: (14 (4 1 2) (3 3 2)) Translation: ((cos-or ((cos-< 1) 2)) ((cos-> 3) 2)) ok Expression: (14 (3 5 2) (2 0 1)) Translation: ((cos-or ((cos-> 5) 2)) ((cos-= 0) 1)) ok Expression: (14 (4 3 6) (2 2 1)) Translation: ((cos-or ((cos-< 3) 6)) ((cos-= 2) 1)) ok Expression: (14 (2 5 5) (2 3 2)) Translation: ((cos-or ((cos-= 5) 5)) ((cos-= 3) 2)) ok Expression: (14 (4 4 7) (4 5 4)) Translation: ((cos-or ((cos-< 4) 7)) ((cos-< 5) 4)) ok Expression: (14 (2 3 3) (3 0 4)) Translation: ((cos-or ((cos-= 3) 3)) ((cos-> 0) 4)) ok Expression: (14 (2 5 0) (4 4 6)) Translation: ((cos-or ((cos-= 5) 0)) ((cos-< 4) 6)) ok Expression: (14 (4 4 3) (2 2 2)) Translation: ((cos-or ((cos-< 4) 3)) ((cos-= 2) 2)) ok Expression: (14 (4 4 0) (4 0 2)) Translation: ((cos-or ((cos-< 4) 0)) ((cos-< 0) 2)) ok Expression: (14 (4 5 3) (2 0 0)) Translation: ((cos-or ((cos-< 5) 3)) ((cos-= 0) 0)) ok Expression: (14 (2 5 4) (3 1 0)) Translation: ((cos-or ((cos-= 5) 4)) ((cos-> 1) 0)) ok Expression: (8 -1 14 (3 2 6) (2 3 1)) Translation: (cos-not ((cos-or ((cos-> 2) 6)) ((cos-= 3) 1))) ok Expression: (8 -1 14 (2 3 4) (4 6 4)) Translation: (cos-not ((cos-or ((cos-= 3) 4)) ((cos-< 6) 4))) ok Expression: (8 -1 14 (3 0 5) (3 6 6)) Translation: (cos-not ((cos-or ((cos-> 0) 5)) ((cos-> 6) 6))) ok Expression: (8 -1 14 (3 1 5) (2 4 3)) Translation: (cos-not ((cos-or ((cos-> 1) 5)) ((cos-= 4) 3))) ok Expression: (8 -1 14 (2 2 1) (3 3 4)) Translation: (cos-not ((cos-or ((cos-= 2) 1)) ((cos-> 3) 4))) ok Expression: (14 (2 4 4) (2 5 5)) Translation: ((cos-or ((cos-= 4) 4)) ((cos-= 5) 5)) ok Expression: (14 (4 6 0) (3 5 2)) Translation: ((cos-or ((cos-< 6) 0)) ((cos-> 5) 2)) ok Expression: (8 -1 14 (3 1 3) (4 5 0)) Translation: (cos-not ((cos-or ((cos-> 1) 3)) ((cos-< 5) 0))) ok Expression: (14 (4 6 4) (2 1 1)) Translation: ((cos-or ((cos-< 6) 4)) ((cos-= 1) 1)) ok Expression: (14 (3 2 6) (2 5 5)) Translation: ((cos-or ((cos-> 2) 6)) ((cos-= 5) 5)) ok Expression: (8 -1 14 (3 2 2) (3 1 2)) Translation: (cos-not ((cos-or ((cos-> 2) 2)) ((cos-> 1) 2))) ok Expression: (14 (3 4 5) (4 5 6)) Translation: ((cos-or ((cos-> 4) 5)) ((cos-< 5) 6)) ok Expression: (14 (2 3 3) (4 5 8)) Translation: ((cos-or ((cos-= 3) 3)) ((cos-< 5) 8)) ok Expression: (14 (4 3 1) (2 3 3)) Translation: ((cos-or ((cos-< 3) 1)) ((cos-= 3) 3)) ok Expression: (14 (4 1 0) (2 4 4)) Translation: ((cos-or ((cos-< 1) 0)) ((cos-= 4) 4)) ok ; MATH use equality for truth values Expression: (2 (2 0 0) (2 4 4)) Translation: ((cos-= ((cos-= 0) 0)) ((cos-= 4) 4)) ok Expression: (2 (2 2 2) (3 5 3)) Translation: ((cos-= ((cos-= 2) 2)) ((cos-> 5) 3)) ok Expression: (2 (2 5 5) (4 2 5)) Translation: ((cos-= ((cos-= 5) 5)) ((cos-< 2) 5)) ok Expression: (2 (3 5 2) (2 4 4)) Translation: ((cos-= ((cos-> 5) 2)) ((cos-= 4) 4)) ok Expression: (2 (4 2 3) (3 3 1)) Translation: ((cos-= ((cos-< 2) 3)) ((cos-> 3) 1)) ok Expression: (2 (3 0 0) (2 2 3)) Translation: ((cos-= ((cos-> 0) 0)) ((cos-= 2) 3)) ok Expression: (2 (4 5 3) (4 3 0)) Translation: ((cos-= ((cos-< 5) 3)) ((cos-< 3) 0)) ok Expression: (2 (2 3 0) (2 3 2)) Translation: ((cos-= ((cos-= 3) 0)) ((cos-= 3) 2)) ok Expression: (2 (2 2 1) (4 3 1)) Translation: ((cos-= ((cos-= 2) 1)) ((cos-< 3) 1)) ok Expression: (2 (3 1 3) (4 6 0)) Translation: ((cos-= ((cos-> 1) 3)) ((cos-< 6) 0)) ok Expression: (8 -1 2 (3 5 6) (3 4 2)) Translation: (cos-not ((cos-= ((cos-> 5) 6)) ((cos-> 4) 2))) ok Expression: (8 -1 2 (2 1 2) (4 1 3)) Translation: (cos-not ((cos-= ((cos-= 1) 2)) ((cos-< 1) 3))) ok Expression: (8 -1 2 (3 2 5) (3 5 4)) Translation: (cos-not ((cos-= ((cos-> 2) 5)) ((cos-> 5) 4))) ok Expression: (8 -1 2 (3 4 5) (4 4 6)) Translation: (cos-not ((cos-= ((cos-> 4) 5)) ((cos-< 4) 6))) ok Expression: (8 -1 2 (4 5 3) (4 1 3)) Translation: (cos-not ((cos-= ((cos-< 5) 3)) ((cos-< 1) 3))) ok Expression: (8 -1 2 (2 4 4) (3 2 4)) Translation: (cos-not ((cos-= ((cos-= 4) 4)) ((cos-> 2) 4))) ok Expression: (8 -1 2 (4 0 2) (3 0 4)) Translation: (cos-not ((cos-= ((cos-< 0) 2)) ((cos-> 0) 4))) ok Expression: (8 -1 2 (4 1 3) (4 5 1)) Translation: (cos-not ((cos-= ((cos-< 1) 3)) ((cos-< 5) 1))) ok Expression: (8 -1 2 (4 0 3) (2 2 3)) Translation: (cos-not ((cos-= ((cos-< 0) 3)) ((cos-= 2) 3))) ok Expression: (8 -1 2 (3 5 3) (2 2 5)) Translation: (cos-not ((cos-= ((cos-> 5) 3)) ((cos-= 2) 5))) ok Expression: (1 16) Translation: (cos-intro 16) ok Expression: (1 15) Translation: (cos-intro 15) ok Expression: (2 (16) (3 1 0)) Translation: ((cos-= cos-true) ((cos-> 1) 0)) ok Expression: (2 (16) (4 3 6)) Translation: ((cos-= cos-true) ((cos-< 3) 6)) ok Expression: (2 (16) (4 2 5)) Translation: ((cos-= cos-true) ((cos-< 2) 5)) ok Expression: (2 (16) (3 3 0)) Translation: ((cos-= cos-true) ((cos-> 3) 0)) ok Expression: (2 (16) (3 7 4)) Translation: ((cos-= cos-true) ((cos-> 7) 4)) ok Expression: (2 (2 1 1) (16)) Translation: ((cos-= ((cos-= 1) 1)) cos-true) ok Expression: (2 (4 3 4) (16)) Translation: ((cos-= ((cos-< 3) 4)) cos-true) ok Expression: (2 (3 6 5) (16)) Translation: ((cos-= ((cos-> 6) 5)) cos-true) ok Expression: (2 (4 4 7) (16)) Translation: ((cos-= ((cos-< 4) 7)) cos-true) ok Expression: (2 (4 5 8) (16)) Translation: ((cos-= ((cos-< 5) 8)) cos-true) ok Expression: (2 (15) (3 3 5)) Translation: ((cos-= cos-false) ((cos-> 3) 5)) ok Expression: (2 (15) (2 4 1)) Translation: ((cos-= cos-false) ((cos-= 4) 1)) ok Expression: (2 (15) (4 3 1)) Translation: ((cos-= cos-false) ((cos-< 3) 1)) ok Expression: (2 (15) (2 3 4)) Translation: ((cos-= cos-false) ((cos-= 3) 4)) ok Expression: (2 (15) (3 0 0)) Translation: ((cos-= cos-false) ((cos-> 0) 0)) ok Expression: (2 (4 1 0) (15)) Translation: ((cos-= ((cos-< 1) 0)) cos-false) ok Expression: (2 (2 3 2) (15)) Translation: ((cos-= ((cos-= 3) 2)) cos-false) ok Expression: (2 (3 1 4) (15)) Translation: ((cos-= ((cos-> 1) 4)) cos-false) ok Expression: (2 (2 2 1) (15)) Translation: ((cos-= ((cos-= 2) 1)) cos-false) ok Expression: (2 (2 2 5) (15)) Translation: ((cos-= ((cos-= 2) 5)) cos-false) ok Expression: (2 (16) (16)) Translation: ((cos-= cos-true) cos-true) ok Expression: (2 (15) (15)) Translation: ((cos-= cos-false) cos-false) ok Expression: (8 -1 2 (16) (15)) Translation: (cos-not ((cos-= cos-true) cos-false)) ok Expression: (8 -1 2 (15) (16)) Translation: (cos-not ((cos-= cos-false) cos-true)) ok ; MATH introduce addition Expression: (1 5) Translation: (cos-intro 5) ok Expression: (2 2 -1 5 1 1) Translation: ((cos-= 2) ((cos-+ 1) 1)) ok Expression: (2 3 -1 5 1 2) Translation: ((cos-= 3) ((cos-+ 1) 2)) ok Expression: (2 1 -1 5 1 0) Translation: ((cos-= 1) ((cos-+ 1) 0)) ok Expression: (2 4 -1 5 1 3) Translation: ((cos-= 4) ((cos-+ 1) 3)) ok Expression: (2 4 -1 5 4 0) Translation: ((cos-= 4) ((cos-+ 4) 0)) ok Expression: (2 2 -1 5 2 0) Translation: ((cos-= 2) ((cos-+ 2) 0)) ok Expression: (2 4 -1 5 0 4) Translation: ((cos-= 4) ((cos-+ 0) 4)) ok Expression: (2 3 -1 5 1 2) Translation: ((cos-= 3) ((cos-+ 1) 2)) ok Expression: (2 2 -1 5 0 2) Translation: ((cos-= 2) ((cos-+ 0) 2)) ok Expression: (2 1 -1 5 0 1) Translation: ((cos-= 1) ((cos-+ 0) 1)) ok ; MATH introduce subtraction Expression: (1 7) Translation: (cos-intro 7) ok Expression: (2 1 -1 7 1 0) Translation: ((cos-= 1) ((cos-- 1) 0)) ok Expression: (2 1 -1 7 4 3) Translation: ((cos-= 1) ((cos-- 4) 3)) ok Expression: (2 2 -1 7 4 2) Translation: ((cos-= 2) ((cos-- 4) 2)) ok Expression: (2 0 -1 7 4 4) Translation: ((cos-= 0) ((cos-- 4) 4)) ok Expression: (2 4 -1 7 5 1) Translation: ((cos-= 4) ((cos-- 5) 1)) ok Expression: (2 1 -1 7 2 1) Translation: ((cos-= 1) ((cos-- 2) 1)) ok Expression: (2 1 -1 7 3 2) Translation: ((cos-= 1) ((cos-- 3) 2)) ok Expression: (2 4 -1 7 8 4) Translation: ((cos-= 4) ((cos-- 8) 4)) ok Expression: (2 4 -1 7 7 3) Translation: ((cos-= 4) ((cos-- 7) 3)) ok Expression: (2 1 -1 7 3 2) Translation: ((cos-= 1) ((cos-- 3) 2)) ok ; MATH introduce multiplication Expression: (1 6) Translation: (cos-intro 6) ok Expression: (2 0 -1 6 0 0) Translation: ((cos-= 0) ((cos-* 0) 0)) ok Expression: (2 0 -1 6 0 1) Translation: ((cos-= 0) ((cos-* 0) 1)) ok Expression: (2 0 -1 6 0 2) Translation: ((cos-= 0) ((cos-* 0) 2)) ok Expression: (2 0 -1 6 0 3) Translation: ((cos-= 0) ((cos-* 0) 3)) ok Expression: (2 0 -1 6 1 0) Translation: ((cos-= 0) ((cos-* 1) 0)) ok Expression: (2 1 -1 6 1 1) Translation: ((cos-= 1) ((cos-* 1) 1)) ok Expression: (2 2 -1 6 1 2) Translation: ((cos-= 2) ((cos-* 1) 2)) ok Expression: (2 3 -1 6 1 3) Translation: ((cos-= 3) ((cos-* 1) 3)) ok Expression: (2 0 -1 6 2 0) Translation: ((cos-= 0) ((cos-* 2) 0)) ok Expression: (2 2 -1 6 2 1) Translation: ((cos-= 2) ((cos-* 2) 1)) ok Expression: (2 4 -1 6 2 2) Translation: ((cos-= 4) ((cos-* 2) 2)) ok Expression: (2 6 -1 6 2 3) Translation: ((cos-= 6) ((cos-* 2) 3)) ok Expression: (2 0 -1 6 3 0) Translation: ((cos-= 0) ((cos-* 3) 0)) ok Expression: (2 3 -1 6 3 1) Translation: ((cos-= 3) ((cos-* 3) 1)) ok Expression: (2 6 -1 6 3 2) Translation: ((cos-= 6) ((cos-* 3) 2)) ok Expression: (2 9 -1 6 3 3) Translation: ((cos-= 9) ((cos-* 3) 3)) ok Expression: (2 4 -1 6 2 2) Translation: ((cos-= 4) ((cos-* 2) 2)) ok Expression: (2 9 -1 6 3 3) Translation: ((cos-= 9) ((cos-* 3) 3)) ok Expression: (2 9 -1 6 3 3) Translation: ((cos-= 9) ((cos-* 3) 3)) ok Expression: (2 3 -1 6 1 3) Translation: ((cos-= 3) ((cos-* 1) 3)) ok Expression: (2 0 -1 6 1 0) Translation: ((cos-= 0) ((cos-* 1) 0)) ok Expression: (2 4 -1 6 2 2) Translation: ((cos-= 4) ((cos-* 2) 2)) ok Expression: (2 0 -1 6 0 1) Translation: ((cos-= 0) ((cos-* 0) 1)) ok Expression: (2 0 -1 6 3 0) Translation: ((cos-= 0) ((cos-* 3) 0)) ok Expression: (2 2 -1 6 1 2) Translation: ((cos-= 2) ((cos-* 1) 2)) ok Expression: (2 0 -1 6 3 0) Translation: ((cos-= 0) ((cos-* 3) 0)) ok ; MATH introduce a simple form of binary notation ; After this lesson, in the higher-level version of the message, ; will expand decimal to stand for the binary notation given. ; It wouldn't be hard to accompany this lesson with a more ; formal definition once functions are introduced (below) ; so maybe the transition to binary shouldbe delayed? Expression: (2 0 0) Translation: ((cos-= 0) 0) ok Expression: (2 1 1) Translation: ((cos-= 1) 1) ok Expression: (2 2 2) Translation: ((cos-= 2) 2) ok Expression: (2 3 3) Translation: ((cos-= 3) 3) ok Expression: (2 4 4) Translation: ((cos-= 4) 4) ok Expression: (2 5 5) Translation: ((cos-= 5) 5) ok Expression: (2 6 6) Translation: ((cos-= 6) 6) ok Expression: (2 7 7) Translation: ((cos-= 7) 7) ok Expression: (2 8 8) Translation: ((cos-= 8) 8) ok Expression: (2 9 9) Translation: ((cos-= 9) 9) ok Expression: (2 10 10) Translation: ((cos-= 10) 10) ok Expression: (2 11 11) Translation: ((cos-= 11) 11) ok Expression: (2 12 12) Translation: ((cos-= 12) 12) ok Expression: (2 13 13) Translation: ((cos-= 13) 13) ok Expression: (2 14 14) Translation: ((cos-= 14) 14) ok Expression: (2 15 15) Translation: ((cos-= 15) 15) ok Expression: (2 6 6) Translation: ((cos-= 6) 6) ok Expression: (2 7 7) Translation: ((cos-= 7) 7) ok Expression: (2 14 14) Translation: ((cos-= 14) 14) ok Expression: (2 0 0) Translation: ((cos-= 0) 0) ok Expression: (2 1 1) Translation: ((cos-= 1) 1) ok Expression: (2 4 4) Translation: ((cos-= 4) 4) ok Expression: (2 1 1) Translation: ((cos-= 1) 1) ok Expression: (2 12 12) Translation: ((cos-= 12) 12) ok Expression: (2 7 7) Translation: ((cos-= 7) 7) ok Expression: (2 15 15) Translation: ((cos-= 15) 15) ok Expression: (2 7 7) Translation: ((cos-= 7) 7) ok Expression: (2 8 8) Translation: ((cos-= 8) 8) ok Expression: (2 15 15) Translation: ((cos-= 15) 15) ok Expression: (2 6 6) Translation: ((cos-= 6) 6) ok Expression: (2 5 5) Translation: ((cos-= 5) 5) ok Expression: (2 8 8) Translation: ((cos-= 8) 8) ok Expression: (2 8 -1 5 8 0) Translation: ((cos-= 8) ((cos-+ 8) 0)) ok Expression: (2 11 -1 5 3 8) Translation: ((cos-= 11) ((cos-+ 3) 8)) ok Expression: (2 7 -1 5 7 0) Translation: ((cos-= 7) ((cos-+ 7) 0)) ok Expression: (2 19 -1 5 10 9) Translation: ((cos-= 19) ((cos-+ 10) 9)) ok Expression: (2 9 -1 5 1 8) Translation: ((cos-= 9) ((cos-+ 1) 8)) ok Expression: (2 22 -1 5 12 10) Translation: ((cos-= 22) ((cos-+ 12) 10)) ok Expression: (2 19 -1 5 11 8) Translation: ((cos-= 19) ((cos-+ 11) 8)) ok Expression: (2 12 -1 5 9 3) Translation: ((cos-= 12) ((cos-+ 9) 3)) ok Expression: (2 30 -1 6 5 6) Translation: ((cos-= 30) ((cos-* 5) 6)) ok Expression: (2 26 -1 6 13 2) Translation: ((cos-= 26) ((cos-* 13) 2)) ok Expression: (2 60 -1 6 6 10) Translation: ((cos-= 60) ((cos-* 6) 10)) ok Expression: (2 63 -1 6 7 9) Translation: ((cos-= 63) ((cos-* 7) 9)) ok Expression: (2 33 -1 6 3 11) Translation: ((cos-= 33) ((cos-* 3) 11)) ok Expression: (2 25 -1 6 5 5) Translation: ((cos-= 25) ((cos-* 5) 5)) ok Expression: (2 8 -1 6 4 2) Translation: ((cos-= 8) ((cos-* 4) 2)) ok Expression: (2 90 -1 6 6 15) Translation: ((cos-= 90) ((cos-* 6) 15)) ok ; MATH show local assignment Expression: (11 20 0 -1 2 (20) 0) Translation: ((lambda (cos-exists) ((cos-= cos-exists) 0)) 0) ok Expression: (11 20 1 -1 2 (20) 1) Translation: ((lambda (cos-exists) ((cos-= cos-exists) 1)) 1) ok Expression: (11 20 2 -1 2 (20) 2) Translation: ((lambda (cos-exists) ((cos-= cos-exists) 2)) 2) ok Expression: (11 21 0 -1 2 (21) 0) Translation: ((lambda (cos-cons) ((cos-= cos-cons) 0)) 0) ok Expression: (11 21 1 -1 2 (21) 1) Translation: ((lambda (cos-cons) ((cos-= cos-cons) 1)) 1) ok Expression: (11 21 2 -1 2 (21) 2) Translation: ((lambda (cos-cons) ((cos-= cos-cons) 2)) 2) ok Expression: (11 22 0 -1 2 (22) 0) Translation: ((lambda (cos-car) ((cos-= cos-car) 0)) 0) ok Expression: (11 22 1 -1 2 (22) 1) Translation: ((lambda (cos-car) ((cos-= cos-car) 1)) 1) ok Expression: (11 22 2 -1 2 (22) 2) Translation: ((lambda (cos-car) ((cos-= cos-car) 2)) 2) ok Expression: (2 0 (11 20 0 (20))) Translation: ((cos-= 0) ((lambda (cos-exists) cos-exists) 0)) ok Expression: (2 0 (11 20 0 -1 20)) Translation: ((cos-= 0) ((lambda (cos-exists) cos-exists) 0)) ok Expression: (2 0 -1 11 20 0 -1 20) Translation: ((cos-= 0) ((lambda (cos-exists) cos-exists) 0)) ok Expression: (2 20 -1 11 20 0 20) Translation: ((cos-= 20) ((lambda (cos-exists) 20) 0)) ok Expression: (2 5 -1 11 20 0 5) Translation: ((cos-= 5) ((lambda (cos-exists) 5) 0)) ok Expression: (2 5 -1 11 20 0 -1 11 23 5 -1 23) Translation: ((cos-= 5) ((lambda (cos-exists) ((lambda (cos-cdr) cos-cdr) 5)) 0)) ok Expression: (2 23 -1 11 20 0 -1 11 23 5 23) Translation: ((cos-= 23) ((lambda (cos-exists) ((lambda (cos-cdr) 23) 5)) 0)) ok Expression: (2 1 (11 20 1 (20))) Translation: ((cos-= 1) ((lambda (cos-exists) cos-exists) 1)) ok Expression: (2 1 (11 20 1 -1 20)) Translation: ((cos-= 1) ((lambda (cos-exists) cos-exists) 1)) ok Expression: (2 1 -1 11 20 1 -1 20) Translation: ((cos-= 1) ((lambda (cos-exists) cos-exists) 1)) ok Expression: (2 20 -1 11 20 1 20) Translation: ((cos-= 20) ((lambda (cos-exists) 20) 1)) ok Expression: (2 5 -1 11 20 1 5) Translation: ((cos-= 5) ((lambda (cos-exists) 5) 1)) ok Expression: (2 5 -1 11 20 1 -1 11 23 5 -1 23) Translation: ((cos-= 5) ((lambda (cos-exists) ((lambda (cos-cdr) cos-cdr) 5)) 1)) ok Expression: (2 23 -1 11 20 1 -1 11 23 5 23) Translation: ((cos-= 23) ((lambda (cos-exists) ((lambda (cos-cdr) 23) 5)) 1)) ok Expression: (2 2 (11 20 2 (20))) Translation: ((cos-= 2) ((lambda (cos-exists) cos-exists) 2)) ok Expression: (2 2 (11 20 2 -1 20)) Translation: ((cos-= 2) ((lambda (cos-exists) cos-exists) 2)) ok Expression: (2 2 -1 11 20 2 -1 20) Translation: ((cos-= 2) ((lambda (cos-exists) cos-exists) 2)) ok Expression: (2 20 -1 11 20 2 20) Translation: ((cos-= 20) ((lambda (cos-exists) 20) 2)) ok Expression: (2 5 -1 11 20 2 5) Translation: ((cos-= 5) ((lambda (cos-exists) 5) 2)) ok Expression: (2 5 -1 11 20 2 -1 11 23 5 -1 23) Translation: ((cos-= 5) ((lambda (cos-exists) ((lambda (cos-cdr) cos-cdr) 5)) 2)) ok Expression: (2 23 -1 11 20 2 -1 11 23 5 23) Translation: ((cos-= 23) ((lambda (cos-exists) ((lambda (cos-cdr) 23) 5)) 2)) ok Expression: (2 0 (11 21 0 (21))) Translation: ((cos-= 0) ((lambda (cos-cons) cos-cons) 0)) ok Expression: (2 0 (11 21 0 -1 21)) Translation: ((cos-= 0) ((lambda (cos-cons) cos-cons) 0)) ok Expression: (2 0 -1 11 21 0 -1 21) Translation: ((cos-= 0) ((lambda (cos-cons) cos-cons) 0)) ok Expression: (2 21 -1 11 21 0 21) Translation: ((cos-= 21) ((lambda (cos-cons) 21) 0)) ok Expression: (2 5 -1 11 21 0 5) Translation: ((cos-= 5) ((lambda (cos-cons) 5) 0)) ok Expression: (2 5 -1 11 21 0 -1 11 23 5 -1 23) Translation: ((cos-= 5) ((lambda (cos-cons) ((lambda (cos-cdr) cos-cdr) 5)) 0)) ok Expression: (2 23 -1 11 21 0 -1 11 23 5 23) Translation: ((cos-= 23) ((lambda (cos-cons) ((lambda (cos-cdr) 23) 5)) 0)) ok Expression: (2 1 (11 21 1 (21))) Translation: ((cos-= 1) ((lambda (cos-cons) cos-cons) 1)) ok Expression: (2 1 (11 21 1 -1 21)) Translation: ((cos-= 1) ((lambda (cos-cons) cos-cons) 1)) ok Expression: (2 1 -1 11 21 1 -1 21) Translation: ((cos-= 1) ((lambda (cos-cons) cos-cons) 1)) ok Expression: (2 21 -1 11 21 1 21) Translation: ((cos-= 21) ((lambda (cos-cons) 21) 1)) ok Expression: (2 5 -1 11 21 1 5) Translation: ((cos-= 5) ((lambda (cos-cons) 5) 1)) ok Expression: (2 5 -1 11 21 1 -1 11 23 5 -1 23) Translation: ((cos-= 5) ((lambda (cos-cons) ((lambda (cos-cdr) cos-cdr) 5)) 1)) ok Expression: (2 23 -1 11 21 1 -1 11 23 5 23) Translation: ((cos-= 23) ((lambda (cos-cons) ((lambda (cos-cdr) 23) 5)) 1)) ok Expression: (2 2 (11 21 2 (21))) Translation: ((cos-= 2) ((lambda (cos-cons) cos-cons) 2)) ok Expression: (2 2 (11 21 2 -1 21)) Translation: ((cos-= 2) ((lambda (cos-cons) cos-cons) 2)) ok Expression: (2 2 -1 11 21 2 -1 21) Translation: ((cos-= 2) ((lambda (cos-cons) cos-cons) 2)) ok Expression: (2 21 -1 11 21 2 21) Translation: ((cos-= 21) ((lambda (cos-cons) 21) 2)) ok Expression: (2 5 -1 11 21 2 5) Translation: ((cos-= 5) ((lambda (cos-cons) 5) 2)) ok Expression: (2 5 -1 11 21 2 -1 11 23 5 -1 23) Translation: ((cos-= 5) ((lambda (cos-cons) ((lambda (cos-cdr) cos-cdr) 5)) 2)) ok Expression: (2 23 -1 11 21 2 -1 11 23 5 23) Translation: ((cos-= 23) ((lambda (cos-cons) ((lambda (cos-cdr) 23) 5)) 2)) ok Expression: (2 0 (11 22 0 (22))) Translation: ((cos-= 0) ((lambda (cos-car) cos-car) 0)) ok Expression: (2 0 (11 22 0 -1 22)) Translation: ((cos-= 0) ((lambda (cos-car) cos-car) 0)) ok Expression: (2 0 -1 11 22 0 -1 22) Translation: ((cos-= 0) ((lambda (cos-car) cos-car) 0)) ok Expression: (2 22 -1 11 22 0 22) Translation: ((cos-= 22) ((lambda (cos-car) 22) 0)) ok Expression: (2 5 -1 11 22 0 5) Translation: ((cos-= 5) ((lambda (cos-car) 5) 0)) ok Expression: (2 5 -1 11 22 0 -1 11 23 5 -1 23) Translation: ((cos-= 5) ((lambda (cos-car) ((lambda (cos-cdr) cos-cdr) 5)) 0)) ok Expression: (2 23 -1 11 22 0 -1 11 23 5 23) Translation: ((cos-= 23) ((lambda (cos-car) ((lambda (cos-cdr) 23) 5)) 0)) ok Expression: (2 1 (11 22 1 (22))) Translation: ((cos-= 1) ((lambda (cos-car) cos-car) 1)) ok Expression: (2 1 (11 22 1 -1 22)) Translation: ((cos-= 1) ((lambda (cos-car) cos-car) 1)) ok Expression: (2 1 -1 11 22 1 -1 22) Translation: ((cos-= 1) ((lambda (cos-car) cos-car) 1)) ok Expression: (2 22 -1 11 22 1 22) Translation: ((cos-= 22) ((lambda (cos-car) 22) 1)) ok Expression: (2 5 -1 11 22 1 5) Translation: ((cos-= 5) ((lambda (cos-car) 5) 1)) ok Expression: (2 5 -1 11 22 1 -1 11 23 5 -1 23) Translation: ((cos-= 5) ((lambda (cos-car) ((lambda (cos-cdr) cos-cdr) 5)) 1)) ok Expression: (2 23 -1 11 22 1 -1 11 23 5 23) Translation: ((cos-= 23) ((lambda (cos-car) ((lambda (cos-cdr) 23) 5)) 1)) ok Expression: (2 2 (11 22 2 (22))) Translation: ((cos-= 2) ((lambda (cos-car) cos-car) 2)) ok Expression: (2 2 (11 22 2 -1 22)) Translation: ((cos-= 2) ((lambda (cos-car) cos-car) 2)) ok Expression: (2 2 -1 11 22 2 -1 22) Translation: ((cos-= 2) ((lambda (cos-car) cos-car) 2)) ok Expression: (2 22 -1 11 22 2 22) Translation: ((cos-= 22) ((lambda (cos-car) 22) 2)) ok Expression: (2 5 -1 11 22 2 5) Translation: ((cos-= 5) ((lambda (cos-car) 5) 2)) ok Expression: (2 5 -1 11 22 2 -1 11 23 5 -1 23) Translation: ((cos-= 5) ((lambda (cos-car) ((lambda (cos-cdr) cos-cdr) 5)) 2)) ok Expression: (2 23 -1 11 22 2 -1 11 23 5 23) Translation: ((cos-= 23) ((lambda (cos-car) ((lambda (cos-cdr) 23) 5)) 2)) ok ; Now for functions. Expression: (11 33 (0 28 5) -1 2 5 (33 2)) Translation: ((lambda (cos-!) ((cos-= 5) (cos-! 2))) (lambda (cos-set!) 5)) ok Expression: (11 26 (0 24 5) -1 2 5 (26 3)) Translation: ((lambda (cos-lambda) ((cos-= 5) (cos-lambda 3))) (lambda (cos-number?) 5)) ok Expression: (11 20 (0 21 6) -1 2 6 (20 2)) Translation: ((lambda (cos-exists) ((cos-= 6) (cos-exists 2))) (lambda (cos-cons) 6)) ok Expression: (11 32 (0 31 6) -1 2 6 (32 3)) Translation: ((lambda (cos-undefined) ((cos-= 6) (cos-undefined 3))) (lambda (cos-natural-set) 6)) ok Expression: (11 23 (0 21 (21)) -1 2 2 (23 2)) Translation: ((lambda (cos-cdr) ((cos-= 2) (cos-cdr 2))) (lambda (cos-cons) cos-cons)) ok Expression: (11 28 (0 35 (35)) -1 2 3 (28 3)) Translation: ((lambda (cos-set!) ((cos-= 3) (cos-set! 3))) (lambda (cos-primer) cos-primer)) ok Expression: (11 21 (0 37 (37)) -1 2 2 (21 2)) Translation: ((lambda (cos-cons) ((cos-= 2) (cos-cons 2))) (lambda (cos-37) cos-37)) ok Expression: (11 32 (0 27 (27)) -1 2 3 (32 3)) Translation: ((lambda (cos-undefined) ((cos-= 3) (cos-undefined 3))) (lambda (cos-make-cell) cos-make-cell)) ok Expression: (11 28 (0 37 -1 5 (37) 1) -1 2 3 (28 2)) Translation: ((lambda (cos-set!) ((cos-= 3) (cos-set! 2))) (lambda (cos-37) ((cos-+ cos-37) 1))) ok Expression: (11 35 (0 23 -1 5 (23) 1) -1 2 4 (35 3)) Translation: ((lambda (cos-primer) ((cos-= 4) (cos-primer 3))) (lambda (cos-cdr) ((cos-+ cos-cdr) 1))) ok Expression: (11 31 (0 25 -1 5 (25) 1) -1 2 3 (31 2)) Translation: ((lambda (cos-natural-set) ((cos-= 3) (cos-natural-set 2))) (lambda (cos-translate) ((cos-+ cos-translate) 1))) ok Expression: (11 31 (0 21 -1 5 (21) 1) -1 2 4 (31 3)) Translation: ((lambda (cos-natural-set) ((cos-= 4) (cos-natural-set 3))) (lambda (cos-cons) ((cos-+ cos-cons) 1))) ok Expression: (11 36 (0 37 -1 5 (37) 8) -1 2 (36 15) 23) Translation: ((lambda (cos-36) ((cos-= (cos-36 15)) 23)) (lambda (cos-37) ((cos-+ cos-37) 8))) ok Expression: (2 ((0 37 -1 5 (37) 8) 15) 23) Translation: ((cos-= ((lambda (cos-37) ((cos-+ cos-37) 8)) 15)) 23) ok Expression: (11 36 (0 37 -1 5 (37) 4) -1 2 (36 15) 19) Translation: ((lambda (cos-36) ((cos-= (cos-36 15)) 19)) (lambda (cos-37) ((cos-+ cos-37) 4))) ok Expression: (2 ((0 37 -1 5 (37) 4) 15) 19) Translation: ((cos-= ((lambda (cos-37) ((cos-+ cos-37) 4)) 15)) 19) ok Expression: (11 36 (0 37 -1 5 (37) 2) -1 2 (36 2) 4) Translation: ((lambda (cos-36) ((cos-= (cos-36 2)) 4)) (lambda (cos-37) ((cos-+ cos-37) 2))) ok Expression: (2 ((0 37 -1 5 (37) 2) 2) 4) Translation: ((cos-= ((lambda (cos-37) ((cos-+ cos-37) 2)) 2)) 4) ok Expression: (11 36 (0 37 -1 5 (37) 15) -1 2 (36 5) 20) Translation: ((lambda (cos-36) ((cos-= (cos-36 5)) 20)) (lambda (cos-37) ((cos-+ cos-37) 15))) ok Expression: (2 ((0 37 -1 5 (37) 15) 5) 20) Translation: ((cos-= ((lambda (cos-37) ((cos-+ cos-37) 15)) 5)) 20) ok Expression: (11 38 (0 37 -1 0 36 -1 5 1 -1 6 (37) (36)) -1 2 (38 15 10) 151) Translation: ((lambda (cos-38) ((cos-= ((cos-38 15) 10)) 151)) (lambda (cos-37) (lambda (cos-36) ((cos-+ 1) ((cos-* cos-37) cos-36))))) ok Expression: (11 38 (0 37 -1 0 36 -1 5 1 -1 6 (37) (36)) -1 2 ((38 15) 10) 151) Translation: ((lambda (cos-38) ((cos-= ((cos-38 15) 10)) 151)) (lambda (cos-37) (lambda (cos-36) ((cos-+ 1) ((cos-* cos-37) cos-36))))) ok Expression: (2 ((0 37 -1 0 36 -1 5 1 -1 6 (37) (36)) 15 10) 151) Translation: ((cos-= (((lambda (cos-37) (lambda (cos-36) ((cos-+ 1) ((cos-* cos-37) cos-36)))) 15) 10)) 151) ok Expression: (2 (((0 37 -1 0 36 -1 5 1 -1 6 (37) (36)) 15) 10) 151) Translation: ((cos-= (((lambda (cos-37) (lambda (cos-36) ((cos-+ 1) ((cos-* cos-37) cos-36)))) 15) 10)) 151) ok Expression: (11 38 (0 37 -1 0 36 -1 5 1 -1 6 (37) (36)) -1 2 (38 5 12) 61) Translation: ((lambda (cos-38) ((cos-= ((cos-38 5) 12)) 61)) (lambda (cos-37) (lambda (cos-36) ((cos-+ 1) ((cos-* cos-37) cos-36))))) ok Expression: (11 38 (0 37 -1 0 36 -1 5 1 -1 6 (37) (36)) -1 2 ((38 5) 12) 61) Translation: ((lambda (cos-38) ((cos-= ((cos-38 5) 12)) 61)) (lambda (cos-37) (lambda (cos-36) ((cos-+ 1) ((cos-* cos-37) cos-36))))) ok Expression: (2 ((0 37 -1 0 36 -1 5 1 -1 6 (37) (36)) 5 12) 61) Translation: ((cos-= (((lambda (cos-37) (lambda (cos-36) ((cos-+ 1) ((cos-* cos-37) cos-36)))) 5) 12)) 61) ok Expression: (2 (((0 37 -1 0 36 -1 5 1 -1 6 (37) (36)) 5) 12) 61) Translation: ((cos-= (((lambda (cos-37) (lambda (cos-36) ((cos-+ 1) ((cos-* cos-37) cos-36)))) 5) 12)) 61) ok Expression: (11 38 (0 37 -1 0 36 -1 5 1 -1 6 (37) (36)) -1 2 (38 9 3) 28) Translation: ((lambda (cos-38) ((cos-= ((cos-38 9) 3)) 28)) (lambda (cos-37) (lambda (cos-36) ((cos-+ 1) ((cos-* cos-37) cos-36))))) ok Expression: (11 38 (0 37 -1 0 36 -1 5 1 -1 6 (37) (36)) -1 2 ((38 9) 3) 28) Translation: ((lambda (cos-38) ((cos-= ((cos-38 9) 3)) 28)) (lambda (cos-37) (lambda (cos-36) ((cos-+ 1) ((cos-* cos-37) cos-36))))) ok Expression: (2 ((0 37 -1 0 36 -1 5 1 -1 6 (37) (36)) 9 3) 28) Translation: ((cos-= (((lambda (cos-37) (lambda (cos-36) ((cos-+ 1) ((cos-* cos-37) cos-36)))) 9) 3)) 28) ok Expression: (2 (((0 37 -1 0 36 -1 5 1 -1 6 (37) (36)) 9) 3) 28) Translation: ((cos-= (((lambda (cos-37) (lambda (cos-36) ((cos-+ 1) ((cos-* cos-37) cos-36)))) 9) 3)) 28) ok Expression: (11 38 (0 37 -1 0 36 -1 5 1 -1 6 (37) (36)) -1 2 (38 12 12) 145) Translation: ((lambda (cos-38) ((cos-= ((cos-38 12) 12)) 145)) (lambda (cos-37) (lambda (cos-36) ((cos-+ 1) ((cos-* cos-37) cos-36))))) ok Expression: (11 38 (0 37 -1 0 36 -1 5 1 -1 6 (37) (36)) -1 2 ((38 12) 12) 145) Translation: ((lambda (cos-38) ((cos-= ((cos-38 12) 12)) 145)) (lambda (cos-37) (lambda (cos-36) ((cos-+ 1) ((cos-* cos-37) cos-36))))) ok Expression: (2 ((0 37 -1 0 36 -1 5 1 -1 6 (37) (36)) 12 12) 145) Translation: ((cos-= (((lambda (cos-37) (lambda (cos-36) ((cos-+ 1) ((cos-* cos-37) cos-36)))) 12) 12)) 145) ok Expression: (2 (((0 37 -1 0 36 -1 5 1 -1 6 (37) (36)) 12) 12) 145) Translation: ((cos-= (((lambda (cos-37) (lambda (cos-36) ((cos-+ 1) ((cos-* cos-37) cos-36)))) 12) 12)) 145) ok Expression: (11 39 (0 37 -1 0 36 -1 0 38 -1 2 (38) -1 5 (37) (36)) -1 39 14 10 24) Translation: ((lambda (cos-39) (((cos-39 14) 10) 24)) (lambda (cos-37) (lambda (cos-36) (lambda (cos-38) ((cos-= cos-38) ((cos-+ cos-37) cos-36)))))) ok Expression: (11 39 (0 37 -1 0 36 -1 0 38 -1 2 (38) -1 5 (37) (36)) -1 39 5 11 16) Translation: ((lambda (cos-39) (((cos-39 5) 11) 16)) (lambda (cos-37) (lambda (cos-36) (lambda (cos-38) ((cos-= cos-38) ((cos-+ cos-37) cos-36)))))) ok Expression: (11 39 (0 37 -1 0 36 -1 0 38 -1 2 (38) -1 5 (37) (36)) -1 39 1 3 4) Translation: ((lambda (cos-39) (((cos-39 1) 3) 4)) (lambda (cos-37) (lambda (cos-36) (lambda (cos-38) ((cos-= cos-38) ((cos-+ cos-37) cos-36)))))) ok Expression: (11 39 (0 37 -1 0 36 -1 0 38 -1 2 (38) -1 5 (37) (36)) -1 39 7 9 16) Translation: ((lambda (cos-39) (((cos-39 7) 9) 16)) (lambda (cos-37) (lambda (cos-36) (lambda (cos-38) ((cos-= cos-38) ((cos-+ cos-37) cos-36)))))) ok Expression: (11 39 (0 37 -1 0 36 -1 0 38 -1 2 (38) -1 5 (37) (36)) -1 39 15 7 22) Translation: ((lambda (cos-39) (((cos-39 15) 7) 22)) (lambda (cos-37) (lambda (cos-36) (lambda (cos-38) ((cos-= cos-38) ((cos-+ cos-37) cos-36)))))) ok Expression: (11 39 (0 37 -1 0 36 -1 0 38 -1 2 (38) -1 5 (37) (36)) -1 39 12 7 19) Translation: ((lambda (cos-39) (((cos-39 12) 7) 19)) (lambda (cos-37) (lambda (cos-36) (lambda (cos-38) ((cos-= cos-38) ((cos-+ cos-37) cos-36)))))) ok Expression: (11 39 (0 37 -1 0 36 -1 0 38 -1 2 (38) -1 5 (37) (36)) -1 39 8 4 12) Translation: ((lambda (cos-39) (((cos-39 8) 4) 12)) (lambda (cos-37) (lambda (cos-36) (lambda (cos-38) ((cos-= cos-38) ((cos-+ cos-37) cos-36)))))) ok Expression: (11 39 (0 37 -1 0 36 -1 0 38 -1 2 (38) -1 5 (37) (36)) -1 39 12 4 16) Translation: ((lambda (cos-39) (((cos-39 12) 4) 16)) (lambda (cos-37) (lambda (cos-36) (lambda (cos-38) ((cos-= cos-38) ((cos-+ cos-37) cos-36)))))) ok ; MATH demonstrate existence of memory Expression: (17 40 42) Translation: (begin (define cos-40 42) 1) ok Expression: (2 42 (40)) Translation: ((cos-= 42) cos-40) ok ; now introduce a function Expression: (11 41 (0 37 -1 6 (37) (37)) -1 2 25 (41 5)) Translation: ((lambda (cos-41) ((cos-= 25) (cos-41 5))) (lambda (cos-37) ((cos-* cos-37) cos-37))) ok Expression: (11 41 (0 37 -1 6 (37) (37)) -1 2 0 (41 0)) Translation: ((lambda (cos-41) ((cos-= 0) (cos-41 0))) (lambda (cos-37) ((cos-* cos-37) cos-37))) ok Expression: (11 41 (0 37 -1 6 (37) (37)) -1 2 25 (41 5)) Translation: ((lambda (cos-41) ((cos-= 25) (cos-41 5))) (lambda (cos-37) ((cos-* cos-37) cos-37))) ok Expression: (11 41 (0 37 -1 6 (37) (37)) -1 2 9 (41 3)) Translation: ((lambda (cos-41) ((cos-= 9) (cos-41 3))) (lambda (cos-37) ((cos-* cos-37) cos-37))) ok ; show that functions can be remembered across statements Expression: (17 41 -1 0 37 -1 6 (37) (37)) Translation: (begin (define cos-41 (lambda (cos-37) ((cos-* cos-37) cos-37))) 1) ok Expression: (2 (41 5) 25) Translation: ((cos-= (cos-41 5)) 25) ok Expression: (2 (41 4) 16) Translation: ((cos-= (cos-41 4)) 16) ok Expression: (2 (41 9) 81) Translation: ((cos-= (cos-41 9)) 81) ok Expression: (2 (41 3) 9) Translation: ((cos-= (cos-41 3)) 9) ok Expression: (17 42 -1 0 37 -1 5 (37) 1) Translation: (begin (define cos-42 (lambda (cos-37) ((cos-+ cos-37) 1))) 1) ok Expression: (2 (42 4) 5) Translation: ((cos-= (cos-42 4)) 5) ok Expression: (2 (42 9) 10) Translation: ((cos-= (cos-42 9)) 10) ok Expression: (2 (42 4) 5) Translation: ((cos-= (cos-42 4)) 5) ok Expression: (2 (42 3) 4) Translation: ((cos-= (cos-42 3)) 4) ok ; MATH show mechanisms for branching Expression: (1 18) Translation: (cos-intro 18) ok Expression: (2 (18 (3 4 1) 29 22) 29) Translation: ((cos-= (if (tish ((cos-> 4) 1)) 29 22)) 29) ok Expression: (2 (18 (3 5 4) 24 28) 24) Translation: ((cos-= (if (tish ((cos-> 5) 4)) 24 28)) 24) ok Expression: (2 (18 (3 4 4) 20 20) 20) Translation: ((cos-= (if (tish ((cos-> 4) 4)) 20 20)) 20) ok Expression: (2 (18 (3 6 3) 28 28) 28) Translation: ((cos-= (if (tish ((cos-> 6) 3)) 28 28)) 28) ok Expression: (2 (18 (4 5 6) 22 23) 22) Translation: ((cos-= (if (tish ((cos-< 5) 6)) 22 23)) 22) ok Expression: (2 (18 (2 3 3) 25 20) 25) Translation: ((cos-= (if (tish ((cos-= 3) 3)) 25 20)) 25) ok Expression: (2 (18 (4 1 2) 27 21) 27) Translation: ((cos-= (if (tish ((cos-< 1) 2)) 27 21)) 27) ok Expression: (2 (18 (2 3 3) 25 25) 25) Translation: ((cos-= (if (tish ((cos-= 3) 3)) 25 25)) 25) ok Expression: (17 43 -1 0 37 -1 0 36 -1 18 (3 (37) (36)) (37) (36)) Translation: (begin (define cos-43 (lambda (cos-37) (lambda (cos-36) (if (tish ((cos-> cos-37) cos-36)) cos-37 cos-36)))) 1) ok Expression: (17 44 -1 0 37 -1 0 36 -1 18 (4 (37) (36)) (37) (36)) Translation: (begin (define cos-44 (lambda (cos-37) (lambda (cos-36) (if (tish ((cos-< cos-37) cos-36)) cos-37 cos-36)))) 1) ok Expression: (2 0 (43 0 0)) Translation: ((cos-= 0) ((cos-43 0) 0)) ok Expression: (2 0 (44 0 0)) Translation: ((cos-= 0) ((cos-44 0) 0)) ok Expression: (2 1 (43 0 1)) Translation: ((cos-= 1) ((cos-43 0) 1)) ok Expression: (2 0 (44 0 1)) Translation: ((cos-= 0) ((cos-44 0) 1)) ok Expression: (2 2 (43 0 2)) Translation: ((cos-= 2) ((cos-43 0) 2)) ok Expression: (2 0 (44 0 2)) Translation: ((cos-= 0) ((cos-44 0) 2)) ok Expression: (2 1 (43 1 0)) Translation: ((cos-= 1) ((cos-43 1) 0)) ok Expression: (2 0 (44 1 0)) Translation: ((cos-= 0) ((cos-44 1) 0)) ok Expression: (2 1 (43 1 1)) Translation: ((cos-= 1) ((cos-43 1) 1)) ok Expression: (2 1 (44 1 1)) Translation: ((cos-= 1) ((cos-44 1) 1)) ok Expression: (2 2 (43 1 2)) Translation: ((cos-= 2) ((cos-43 1) 2)) ok Expression: (2 1 (44 1 2)) Translation: ((cos-= 1) ((cos-44 1) 2)) ok Expression: (2 2 (43 2 0)) Translation: ((cos-= 2) ((cos-43 2) 0)) ok Expression: (2 0 (44 2 0)) Translation: ((cos-= 0) ((cos-44 2) 0)) ok Expression: (2 2 (43 2 1)) Translation: ((cos-= 2) ((cos-43 2) 1)) ok Expression: (2 1 (44 2 1)) Translation: ((cos-= 1) ((cos-44 2) 1)) ok Expression: (2 2 (43 2 2)) Translation: ((cos-= 2) ((cos-43 2) 2)) ok Expression: (2 2 (44 2 2)) Translation: ((cos-= 2) ((cos-44 2) 2)) ok Expression: (17 45 -1 0 46 -1 18 (9 (46) 1) 1 -1 6 (46) -1 45 -1 7 (46) 1) Translation: (begin (define cos-45 (lambda (cos-46) (if (tish ((cos-<= cos-46) 1)) 1 ((cos-* cos-46) (cos-45 ((cos-- cos-46) 1)))))) 1) ok Expression: (2 1 -1 45 1) Translation: ((cos-= 1) (cos-45 1)) ok Expression: (2 2 -1 45 2) Translation: ((cos-= 2) (cos-45 2)) ok Expression: (2 6 -1 45 3) Translation: ((cos-= 6) (cos-45 3)) ok Expression: (2 24 -1 45 4) Translation: ((cos-= 24) (cos-45 4)) ok Expression: (2 120 -1 45 5) Translation: ((cos-= 120) (cos-45 5)) ok ; MATH illustrate pairs Expression: (11 37 (21 3 4) -1 2 (22 -1 37) 3) Translation: ((lambda (cos-37) ((cos-= (cos-car cos-37)) 3)) ((cos-cons 3) 4)) ok Expression: (11 37 (21 3 4) -1 2 (23 -1 37) 4) Translation: ((lambda (cos-37) ((cos-= (cos-cdr cos-37)) 4)) ((cos-cons 3) 4)) ok Expression: (11 37 (21 9 1) -1 2 (22 -1 37) 9) Translation: ((lambda (cos-37) ((cos-= (cos-car cos-37)) 9)) ((cos-cons 9) 1)) ok Expression: (11 37 (21 9 1) -1 2 (23 -1 37) 1) Translation: ((lambda (cos-37) ((cos-= (cos-cdr cos-37)) 1)) ((cos-cons 9) 1)) ok Expression: (11 37 (21 7 8) -1 2 (22 -1 37) 7) Translation: ((lambda (cos-37) ((cos-= (cos-car cos-37)) 7)) ((cos-cons 7) 8)) ok Expression: (11 37 (21 7 8) -1 2 (23 -1 37) 8) Translation: ((lambda (cos-37) ((cos-= (cos-cdr cos-37)) 8)) ((cos-cons 7) 8)) ok Expression: (11 37 (21 16 -1 21 6 13) -1 2 (22 -1 37) 16) Translation: ((lambda (cos-37) ((cos-= (cos-car cos-37)) 16)) ((cos-cons 16) ((cos-cons 6) 13))) ok Expression: (11 37 (21 16 -1 21 6 13) -1 2 (22 -1 23 -1 37) 6) Translation: ((lambda (cos-37) ((cos-= (cos-car (cos-cdr cos-37))) 6)) ((cos-cons 16) ((cos-cons 6) 13))) ok Expression: (11 37 (21 16 -1 21 6 13) -1 2 (23 -1 23 -1 37) 13) Translation: ((lambda (cos-37) ((cos-= (cos-cdr (cos-cdr cos-37))) 13)) ((cos-cons 16) ((cos-cons 6) 13))) ok Expression: (11 37 (21 14 -1 21 11 5) -1 2 (22 -1 37) 14) Translation: ((lambda (cos-37) ((cos-= (cos-car cos-37)) 14)) ((cos-cons 14) ((cos-cons 11) 5))) ok Expression: (11 37 (21 14 -1 21 11 5) -1 2 (22 -1 23 -1 37) 11) Translation: ((lambda (cos-37) ((cos-= (cos-car (cos-cdr cos-37))) 11)) ((cos-cons 14) ((cos-cons 11) 5))) ok Expression: (11 37 (21 14 -1 21 11 5) -1 2 (23 -1 23 -1 37) 5) Translation: ((lambda (cos-37) ((cos-= (cos-cdr (cos-cdr cos-37))) 5)) ((cos-cons 14) ((cos-cons 11) 5))) ok Expression: (11 37 (21 2 -1 21 9 7) -1 2 (22 -1 37) 2) Translation: ((lambda (cos-37) ((cos-= (cos-car cos-37)) 2)) ((cos-cons 2) ((cos-cons 9) 7))) ok Expression: (11 37 (21 2 -1 21 9 7) -1 2 (22 -1 23 -1 37) 9) Translation: ((lambda (cos-37) ((cos-= (cos-car (cos-cdr cos-37))) 9)) ((cos-cons 2) ((cos-cons 9) 7))) ok Expression: (11 37 (21 2 -1 21 9 7) -1 2 (23 -1 23 -1 37) 7) Translation: ((lambda (cos-37) ((cos-= (cos-cdr (cos-cdr cos-37))) 7)) ((cos-cons 2) ((cos-cons 9) 7))) ok Expression: (11 37 (21 1 -1 21 4 -1 21 3 -1 21 0 2) -1 13 (2 1 -1 22 -1 37) -1 13 (2 4 -1 22 -1 23 -1 37) -1 13 (2 3 -1 22 -1 23 -1 23 -1 37) -1 13 (2 0 -1 22 -1 23 -1 23 -1 23 -1 37) (2 2 -1 23 -1 23 -1 23 -1 23 -1 37)) Translation: ((lambda (cos-37) ((cos-and ((cos-= 1) (cos-car cos-37))) ((cos-and ((cos-= 4) (cos-car (cos-cdr cos-37)))) ((cos-and ((cos-= 3) (cos-car (cos-cdr (cos-cdr cos-37))))) ((cos-and ((cos-= 0) (cos-car (cos-cdr (cos-cdr (cos-cdr cos-37)))))) ((cos-= 2) (cos-cdr (cos-cdr (cos-cdr (cos-cdr cos-37)))))))))) ((cos-cons 1) ((cos-cons 4) ((cos-cons 3) ((cos-cons 0) 2))))) ok ; MATH introduce mutable objects, and side-effects Expression: (1 27) Translation: (cos-intro 27) ok Expression: (1 28) Translation: (cos-intro 28) ok Expression: (1 29) Translation: (cos-intro 29) ok Expression: (17 47 -1 27 0) Translation: (begin (define cos-47 (cos-make-cell 0)) 1) ok Expression: (28 (47) 15) Translation: ((cos-set! cos-47) 15) ok Expression: (2 (29 -1 47) 15) Translation: ((cos-= (cos-get! cos-47)) 15) ok Expression: (28 (47) 5) Translation: ((cos-set! cos-47) 5) ok Expression: (28 (47) 7) Translation: ((cos-set! cos-47) 7) ok Expression: (2 (29 -1 47) 7) Translation: ((cos-= (cos-get! cos-47)) 7) ok Expression: (17 48 -1 27 11) Translation: (begin (define cos-48 (cos-make-cell 11)) 1) ok Expression: (2 (29 -1 48) 11) Translation: ((cos-= (cos-get! cos-48)) 11) ok Expression: (28 (48) 22) Translation: ((cos-set! cos-48) 22) ok Expression: (2 (29 -1 48) 22) Translation: ((cos-= (cos-get! cos-48)) 22) ok Expression: (2 (29 -1 47) 7) Translation: ((cos-= (cos-get! cos-47)) 7) ok Expression: (2 (5 (29 -1 47) (29 -1 48)) 29) Translation: ((cos-= ((cos-+ (cos-get! cos-47)) (cos-get! cos-48))) 29) ok Expression: (18 (2 (29 -1 47) 7) (28 (47) 88) (28 (47) 99)) Translation: (if (tish ((cos-= (cos-get! cos-47)) 7)) ((cos-set! cos-47) 88) ((cos-set! cos-47) 99)) ok Expression: (2 (29 -1 47) 88) Translation: ((cos-= (cos-get! cos-47)) 88) ok Expression: (18 (2 (29 -1 47) 7) (28 (47) 88) (28 (47) 99)) Translation: (if (tish ((cos-= (cos-get! cos-47)) 7)) ((cos-set! cos-47) 88) ((cos-set! cos-47) 99)) ok Expression: (2 (29 -1 47) 99) Translation: ((cos-= (cos-get! cos-47)) 99) ok ; MATH illustrate lists and some list operators ; to make list describable as a function, need to preceed lists ; ... with an argument count ; Lists keep an explicit record of their length ; this is to avoid the need for using a special 'nil' symbol ; ... which cannot itself be placed in the list. ; ; missing - intro to cons, car, cdr ; used to be pure-cons pure-car pure-cdr but changed for better interface to scheme ; also should introduce number? check function ; Expression: (17 49 -1 0 46 -1 0 50 -1 18 (3 (46) 1) (0 37 -1 49 (7 (46) 1) (0 36 -1 0 38 -1 50 (5 1 (36)) (21 (37) (38)))) (0 37 -1 50 1 (37))) Translation: (begin (define cos-49 (lambda (cos-46) (lambda (cos-50) (if (tish ((cos-> cos-46) 1)) (lambda (cos-37) ((cos-49 ((cos-- cos-46) 1)) (lambda (cos-36) (lambda (cos-38) ((cos-50 ((cos-+ 1) cos-36)) ((cos-cons cos-37) cos-38)))))) (lambda (cos-37) ((cos-50 1) cos-37)))))) 1) ok Expression: (17 51 -1 0 46 -1 18 (2 (46) 0) (21 0 0) (49 (46) (0 36 -1 0 38 -1 21 (36) (38)))) Translation: (begin (define cos-51 (lambda (cos-46) (if (tish ((cos-= cos-46) 0)) ((cos-cons 0) 0) ((cos-49 cos-46) (lambda (cos-36) (lambda (cos-38) ((cos-cons cos-36) cos-38))))))) 1) ok Expression: (17 52 -1 0 53 -1 18 (2 (22 -1 53) 0) (32) (18 (2 (22 -1 53) 1) (23 -1 53) (22 -1 23 -1 53))) Translation: (begin (define cos-52 (lambda (cos-53) (if (tish ((cos-= (cos-car cos-53)) 0)) cos-undefined (if (tish ((cos-= (cos-car cos-53)) 1)) (cos-cdr cos-53) (cos-car (cos-cdr cos-53)))))) 1) ok Expression: (17 54 -1 0 53 -1 18 (2 (22 -1 53) 0) (32) (18 (2 (22 -1 53) 1) (21 0 0) (21 (7 (22 -1 53) 1) (23 -1 23 -1 53)))) Translation: (begin (define cos-54 (lambda (cos-53) (if (tish ((cos-= (cos-car cos-53)) 0)) cos-undefined (if (tish ((cos-= (cos-car cos-53)) 1)) ((cos-cons 0) 0) ((cos-cons ((cos-- (cos-car cos-53)) 1)) (cos-cdr (cos-cdr cos-53))))))) 1) ok Expression: (17 55 -1 0 53 -1 22 -1 53) Translation: (begin (define cos-55 (lambda (cos-53) (cos-car cos-53))) 1) ok Expression: (17 56 -1 0 53 -1 0 46 -1 18 (2 (56 -1 53) 0) (32) (18 (2 (46) 0) (52 -1 53) (56 (54 -1 53) (7 (46) 1)))) Translation: (begin (define cos-56 (lambda (cos-53) (lambda (cos-46) (if (tish ((cos-= (cos-56 cos-53)) 0)) cos-undefined (if (tish ((cos-= cos-46) 0)) (cos-52 cos-53) ((cos-56 (cos-54 cos-53)) ((cos-- cos-46) 1))))))) 1) ok Expression: (17 57 -1 0 37 -1 0 53 -1 18 (2 (55 -1 53) 0) (21 1 (37)) (21 (5 (55 -1 53) 1) (21 (37) (23 -1 53)))) Translation: (begin (define cos-57 (lambda (cos-37) (lambda (cos-53) (if (tish ((cos-= (cos-55 cos-53)) 0)) ((cos-cons 1) cos-37) ((cos-cons ((cos-+ (cos-55 cos-53)) 1)) ((cos-cons cos-37) (cos-cdr cos-53))))))) 1) ok Expression: (17 58 -1 0 37 -1 0 36 -1 18 (2 (24 (37)) (24 (36))) (18 (24 (37)) (2 (37) (36)) (59 (37) (36))) (15)) Translation: (begin (define cos-58 (lambda (cos-37) (lambda (cos-36) (if (tish ((cos-= (cos-number? cos-37)) (cos-number? cos-36))) (if (tish (cos-number? cos-37)) ((cos-= cos-37) cos-36) ((cos-59 cos-37) cos-36)) cos-false)))) 1) ok Expression: (17 59 -1 0 37 -1 0 36 -1 18 (2 (55 -1 37) (55 -1 36)) (18 (3 (55 -1 37) 0) (13 (58 (52 -1 37) (52 -1 36)) (59 (54 -1 37) (54 -1 36))) (16)) (15)) Translation: (begin (define cos-59 (lambda (cos-37) (lambda (cos-36) (if (tish ((cos-= (cos-55 cos-37)) (cos-55 cos-36))) (if (tish ((cos-> (cos-55 cos-37)) 0)) ((cos-and ((cos-58 (cos-52 cos-37)) (cos-52 cos-36))) ((cos-59 (cos-54 cos-37)) (cos-54 cos-36))) cos-true) cos-false)))) 1) ok Expression: (2 (55 -1 (51 5) 8 5 9 2 3) 5) Translation: ((cos-= (cos-55 ((((((cos-51 5) 8) 5) 9) 2) 3))) 5) ok Expression: (2 (55 -1 (51 0)) 0) Translation: ((cos-= (cos-55 (cos-51 0))) 0) ok Expression: (2 (55 -1 (51 4) 6 5 8 4) 4) Translation: ((cos-= (cos-55 (((((cos-51 4) 6) 5) 8) 4))) 4) ok Expression: (2 (55 -1 (51 8) 8 3 1 6 0 2 7 4) 8) Translation: ((cos-= (cos-55 (((((((((cos-51 8) 8) 3) 1) 6) 0) 2) 7) 4))) 8) ok Expression: (2 (55 -1 (51 1) 3) 1) Translation: ((cos-= (cos-55 ((cos-51 1) 3))) 1) ok Expression: (2 (52 -1 (51 8) 2 4 7 5 14 14 16 1) 2) Translation: ((cos-= (cos-52 (((((((((cos-51 8) 2) 4) 7) 5) 14) 14) 16) 1))) 2) ok Expression: (59 (54 -1 (51 8) 2 4 7 5 14 14 16 1) ((51 7) 4 7 5 14 14 16 1)) Translation: ((cos-59 (cos-54 (((((((((cos-51 8) 2) 4) 7) 5) 14) 14) 16) 1))) ((((((((cos-51 7) 4) 7) 5) 14) 14) 16) 1)) ok Expression: (2 (52 -1 (51 9) 6 15 18 17 2 12 12 16 8) 6) Translation: ((cos-= (cos-52 ((((((((((cos-51 9) 6) 15) 18) 17) 2) 12) 12) 16) 8))) 6) ok Expression: (59 (54 -1 (51 9) 6 15 18 17 2 12 12 16 8) ((51 8) 15 18 17 2 12 12 16 8)) Translation: ((cos-59 (cos-54 ((((((((((cos-51 9) 6) 15) 18) 17) 2) 12) 12) 16) 8))) (((((((((cos-51 8) 15) 18) 17) 2) 12) 12) 16) 8)) ok Expression: (2 (52 -1 (51 2) 16 13) 16) Translation: ((cos-= (cos-52 (((cos-51 2) 16) 13))) 16) ok Expression: (59 (54 -1 (51 2) 16 13) ((51 1) 13)) Translation: ((cos-59 (cos-54 (((cos-51 2) 16) 13))) ((cos-51 1) 13)) ok Expression: (2 (52 -1 (51 8) 18 9 10 15 2 12 15 17) 18) Translation: ((cos-= (cos-52 (((((((((cos-51 8) 18) 9) 10) 15) 2) 12) 15) 17))) 18) ok Expression: (59 (54 -1 (51 8) 18 9 10 15 2 12 15 17) ((51 7) 9 10 15 2 12 15 17)) Translation: ((cos-59 (cos-54 (((((((((cos-51 8) 18) 9) 10) 15) 2) 12) 15) 17))) ((((((((cos-51 7) 9) 10) 15) 2) 12) 15) 17)) ok Expression: (2 (52 -1 (51 2) 1 15) 1) Translation: ((cos-= (cos-52 (((cos-51 2) 1) 15))) 1) ok Expression: (59 (54 -1 (51 2) 1 15) ((51 1) 15)) Translation: ((cos-59 (cos-54 (((cos-51 2) 1) 15))) ((cos-51 1) 15)) ok Expression: (2 (52 -1 (51 10) 1 14 7 3 5 11 1 17 13 15) 1) Translation: ((cos-= (cos-52 (((((((((((cos-51 10) 1) 14) 7) 3) 5) 11) 1) 17) 13) 15))) 1) ok Expression: (59 (54 -1 (51 10) 1 14 7 3 5 11 1 17 13 15) ((51 9) 14 7 3 5 11 1 17 13 15)) Translation: ((cos-59 (cos-54 (((((((((((cos-51 10) 1) 14) 7) 3) 5) 11) 1) 17) 13) 15))) ((((((((((cos-51 9) 14) 7) 3) 5) 11) 1) 17) 13) 15)) ok Expression: (2 (52 -1 (51 4) 10 19 16 4) 10) Translation: ((cos-= (cos-52 (((((cos-51 4) 10) 19) 16) 4))) 10) ok Expression: (59 (54 -1 (51 4) 10 19 16 4) ((51 3) 19 16 4)) Translation: ((cos-59 (cos-54 (((((cos-51 4) 10) 19) 16) 4))) ((((cos-51 3) 19) 16) 4)) ok Expression: (2 (52 -1 (51 1) 15) 15) Translation: ((cos-= (cos-52 ((cos-51 1) 15))) 15) ok Expression: (59 (54 -1 (51 1) 15) ((51 0))) Translation: ((cos-59 (cos-54 ((cos-51 1) 15))) (cos-51 0)) ok Expression: (2 (52 -1 (51 8) 11 5 11 8 5 8 3 14) 11) Translation: ((cos-= (cos-52 (((((((((cos-51 8) 11) 5) 11) 8) 5) 8) 3) 14))) 11) ok Expression: (59 (54 -1 (51 8) 11 5 11 8 5 8 3 14) ((51 7) 5 11 8 5 8 3 14)) Translation: ((cos-59 (cos-54 (((((((((cos-51 8) 11) 5) 11) 8) 5) 8) 3) 14))) ((((((((cos-51 7) 5) 11) 8) 5) 8) 3) 14)) ok Expression: (2 (52 -1 (51 5) 6 2 13 5 1) 6) Translation: ((cos-= (cos-52 ((((((cos-51 5) 6) 2) 13) 5) 1))) 6) ok Expression: (59 (54 -1 (51 5) 6 2 13 5 1) ((51 4) 2 13 5 1)) Translation: ((cos-59 (cos-54 ((((((cos-51 5) 6) 2) 13) 5) 1))) (((((cos-51 4) 2) 13) 5) 1)) ok Expression: (2 (56 ((51 1) 18) 0) 18) Translation: ((cos-= ((cos-56 ((cos-51 1) 18)) 0)) 18) ok Expression: (2 (56 ((51 3) 3 15 16) 2) 16) Translation: ((cos-= ((cos-56 ((((cos-51 3) 3) 15) 16)) 2)) 16) ok Expression: (2 (56 ((51 5) 12 0 0 0 8) 0) 12) Translation: ((cos-= ((cos-56 ((((((cos-51 5) 12) 0) 0) 0) 8)) 0)) 12) ok Expression: (2 (56 ((51 1) 3) 0) 3) Translation: ((cos-= ((cos-56 ((cos-51 1) 3)) 0)) 3) ok Expression: (2 (56 ((51 2) 16 16) 0) 16) Translation: ((cos-= ((cos-56 (((cos-51 2) 16) 16)) 0)) 16) ok Expression: (2 (56 ((51 1) 0) 0) 0) Translation: ((cos-= ((cos-56 ((cos-51 1) 0)) 0)) 0) ok Expression: (2 (56 ((51 2) 9 0) 1) 0) Translation: ((cos-= ((cos-56 (((cos-51 2) 9) 0)) 1)) 0) ok Expression: (2 (56 ((51 7) 11 5 7 19 9 18 2) 2) 7) Translation: ((cos-= ((cos-56 ((((((((cos-51 7) 11) 5) 7) 19) 9) 18) 2)) 2)) 7) ok Expression: (2 (56 ((51 3) 18 9 12) 1) 9) Translation: ((cos-= ((cos-56 ((((cos-51 3) 18) 9) 12)) 1)) 9) ok Expression: (2 (56 ((51 1) 0) 0) 0) Translation: ((cos-= ((cos-56 ((cos-51 1) 0)) 0)) 0) ok Expression: (59 ((51 0)) ((51 0))) Translation: ((cos-59 (cos-51 0)) (cos-51 0)) ok Expression: (59 ((51 1) 10) ((51 1) 10)) Translation: ((cos-59 ((cos-51 1) 10)) ((cos-51 1) 10)) ok Expression: (59 ((51 2) 12 8) ((51 2) 12 8)) Translation: ((cos-59 (((cos-51 2) 12) 8)) (((cos-51 2) 12) 8)) ok Expression: (59 ((51 3) 5 5 0) ((51 3) 5 5 0)) Translation: ((cos-59 ((((cos-51 3) 5) 5) 0)) ((((cos-51 3) 5) 5) 0)) ok Expression: (59 ((51 4) 4 10 12 11) ((51 4) 4 10 12 11)) Translation: ((cos-59 (((((cos-51 4) 4) 10) 12) 11)) (((((cos-51 4) 4) 10) 12) 11)) ok ; this next batch of examples are a bit misleading, should streamline Expression: (8 -1 59 ((51 0)) ((51 1) 4)) Translation: (cos-not ((cos-59 (cos-51 0)) ((cos-51 1) 4))) ok Expression: (8 -1 59 ((51 0)) ((51 1) 4)) Translation: (cos-not ((cos-59 (cos-51 0)) ((cos-51 1) 4))) ok Expression: (8 -1 59 ((51 1) 5) ((51 2) 8 5)) Translation: (cos-not ((cos-59 ((cos-51 1) 5)) (((cos-51 2) 8) 5))) ok Expression: (8 -1 59 ((51 1) 5) ((51 2) 5 3)) Translation: (cos-not ((cos-59 ((cos-51 1) 5)) (((cos-51 2) 5) 3))) ok Expression: (8 -1 59 ((51 2) 11 15) ((51 3) 4 11 15)) Translation: (cos-not ((cos-59 (((cos-51 2) 11) 15)) ((((cos-51 3) 4) 11) 15))) ok Expression: (8 -1 59 ((51 2) 11 15) ((51 3) 11 15 3)) Translation: (cos-not ((cos-59 (((cos-51 2) 11) 15)) ((((cos-51 3) 11) 15) 3))) ok Expression: (8 -1 59 ((51 3) 11 19 16) ((51 4) 4 11 19 16)) Translation: (cos-not ((cos-59 ((((cos-51 3) 11) 19) 16)) (((((cos-51 4) 4) 11) 19) 16))) ok Expression: (8 -1 59 ((51 3) 11 19 16) ((51 4) 11 19 16 1)) Translation: (cos-not ((cos-59 ((((cos-51 3) 11) 19) 16)) (((((cos-51 4) 11) 19) 16) 1))) ok Expression: (8 -1 59 ((51 4) 14 18 5 11) ((51 5) 6 14 18 5 11)) Translation: (cos-not ((cos-59 (((((cos-51 4) 14) 18) 5) 11)) ((((((cos-51 5) 6) 14) 18) 5) 11))) ok Expression: (8 -1 59 ((51 4) 14 18 5 11) ((51 5) 14 18 5 11 9)) Translation: (cos-not ((cos-59 (((((cos-51 4) 14) 18) 5) 11)) ((((((cos-51 5) 14) 18) 5) 11) 9))) ok ; some helpful functions Expression: (59 (57 6 ((51 0))) ((51 1) 6)) Translation: ((cos-59 ((cos-57 6) (cos-51 0))) ((cos-51 1) 6)) ok Expression: (59 (57 6 ((51 1) 11)) ((51 2) 6 11)) Translation: ((cos-59 ((cos-57 6) ((cos-51 1) 11))) (((cos-51 2) 6) 11)) ok Expression: (59 (57 17 ((51 2) 11 4)) ((51 3) 17 11 4)) Translation: ((cos-59 ((cos-57 17) (((cos-51 2) 11) 4))) ((((cos-51 3) 17) 11) 4)) ok Expression: (59 (57 18 ((51 3) 6 17 4)) ((51 4) 18 6 17 4)) Translation: ((cos-59 ((cos-57 18) ((((cos-51 3) 6) 17) 4))) (((((cos-51 4) 18) 6) 17) 4)) ok Expression: (59 (57 3 ((51 4) 8 11 1 10)) ((51 5) 3 8 11 1 10)) Translation: ((cos-59 ((cos-57 3) (((((cos-51 4) 8) 11) 1) 10))) ((((((cos-51 5) 3) 8) 11) 1) 10)) ok Expression: (59 (57 7 ((51 5) 8 3 2 8 0)) ((51 6) 7 8 3 2 8 0)) Translation: ((cos-59 ((cos-57 7) ((((((cos-51 5) 8) 3) 2) 8) 0))) (((((((cos-51 6) 7) 8) 3) 2) 8) 0)) ok Expression: (59 (57 17 ((51 6) 14 15 14 19 9 3)) ((51 7) 17 14 15 14 19 9 3)) Translation: ((cos-59 ((cos-57 17) (((((((cos-51 6) 14) 15) 14) 19) 9) 3))) ((((((((cos-51 7) 17) 14) 15) 14) 19) 9) 3)) ok Expression: (59 (57 17 ((51 7) 10 19 8 2 7 4 1)) ((51 8) 17 10 19 8 2 7 4 1)) Translation: ((cos-59 ((cos-57 17) ((((((((cos-51 7) 10) 19) 8) 2) 7) 4) 1))) (((((((((cos-51 8) 17) 10) 19) 8) 2) 7) 4) 1)) ok Expression: (17 60 -1 0 37 -1 0 36 -1 (51 2) (37) (36)) Translation: (begin (define cos-60 (lambda (cos-37) (lambda (cos-36) (((cos-51 2) cos-37) cos-36)))) 1) ok Expression: (17 61 -1 0 53 -1 52 -1 53) Translation: (begin (define cos-61 (lambda (cos-53) (cos-52 cos-53))) 1) ok Expression: (17 62 -1 0 53 -1 52 -1 54 -1 53) Translation: (begin (define cos-62 (lambda (cos-53) (cos-52 (cos-54 cos-53)))) 1) ok Expression: (59 (60 2 8) ((51 2) 2 8)) Translation: ((cos-59 ((cos-60 2) 8)) (((cos-51 2) 2) 8)) ok Expression: (2 (61 -1 60 2 8) 2) Translation: ((cos-= (cos-61 ((cos-60 2) 8))) 2) ok Expression: (2 (62 -1 60 2 8) 8) Translation: ((cos-= (cos-62 ((cos-60 2) 8))) 8) ok Expression: (59 (60 6 0) ((51 2) 6 0)) Translation: ((cos-59 ((cos-60 6) 0)) (((cos-51 2) 6) 0)) ok Expression: (2 (61 -1 60 6 0) 6) Translation: ((cos-= (cos-61 ((cos-60 6) 0))) 6) ok Expression: (2 (62 -1 60 6 0) 0) Translation: ((cos-= (cos-62 ((cos-60 6) 0))) 0) ok Expression: (59 (60 9 3) ((51 2) 9 3)) Translation: ((cos-59 ((cos-60 9) 3)) (((cos-51 2) 9) 3)) ok Expression: (2 (61 -1 60 9 3) 9) Translation: ((cos-= (cos-61 ((cos-60 9) 3))) 9) ok Expression: (2 (62 -1 60 9 3) 3) Translation: ((cos-= (cos-62 ((cos-60 9) 3))) 3) ok Expression: (17 63 -1 0 53 -1 0 64 -1 0 65 -1 0 66 -1 18 (2 (55 -1 53) 0) (65 0) (18 (58 (52 -1 53) (64)) (66) (63 (54 -1 53) (64) (65) (5 (66) 1)))) Translation: (begin (define cos-63 (lambda (cos-53) (lambda (cos-64) (lambda (cos-65) (lambda (cos-66) (if (tish ((cos-= (cos-55 cos-53)) 0)) (cos-65 0) (if (tish ((cos-58 (cos-52 cos-53)) cos-64)) cos-66 ((((cos-63 (cos-54 cos-53)) cos-64) cos-65) ((cos-+ cos-66) 1))))))))) 1) ok Expression: (17 67 -1 0 53 -1 0 64 -1 0 65 -1 63 (53) (64) (65) 0) Translation: (begin (define cos-67 (lambda (cos-53) (lambda (cos-64) (lambda (cos-65) ((((cos-63 cos-53) cos-64) cos-65) 0))))) 1) ok Expression: (17 68 -1 0 37 100) Translation: (begin (define cos-68 (lambda (cos-37) 100)) 1) ok Expression: (2 (67 ((51 1) 13) 13 (68)) 0) Translation: ((cos-= (((cos-67 ((cos-51 1) 13)) 13) cos-68)) 0) ok Expression: (2 (67 ((51 9) 15 17 16 12 3 15 2 4 13) 15 (68)) 0) Translation: ((cos-= (((cos-67 ((((((((((cos-51 9) 15) 17) 16) 12) 3) 15) 2) 4) 13)) 15) cos-68)) 0) ok Expression: (2 (67 ((51 9) 19 0 14 18 9 11 12 5 19) 11 (68)) 5) Translation: ((cos-= (((cos-67 ((((((((((cos-51 9) 19) 0) 14) 18) 9) 11) 12) 5) 19)) 11) cos-68)) 5) ok Expression: (2 (67 ((51 2) 15 1) 15 (68)) 0) Translation: ((cos-= (((cos-67 (((cos-51 2) 15) 1)) 15) cos-68)) 0) ok Expression: (2 (67 ((51 4) 0 7 19 1) 7 (68)) 1) Translation: ((cos-= (((cos-67 (((((cos-51 4) 0) 7) 19) 1)) 7) cos-68)) 1) ok Expression: (2 (67 ((51 6) 9 9 1 10 5 19) 10 (68)) 3) Translation: ((cos-= (((cos-67 (((((((cos-51 6) 9) 9) 1) 10) 5) 19)) 10) cos-68)) 3) ok Expression: (2 (67 ((51 2) 17 1) 1 (68)) 1) Translation: ((cos-= (((cos-67 (((cos-51 2) 17) 1)) 1) cos-68)) 1) ok Expression: (2 (67 ((51 8) 0 3 16 13 19 13 18 11) 13 (68)) 3) Translation: ((cos-= (((cos-67 (((((((((cos-51 8) 0) 3) 16) 13) 19) 13) 18) 11)) 13) cos-68)) 3) ok Expression: (2 (67 ((51 4) 15 6 2 1) 1 (68)) 3) Translation: ((cos-= (((cos-67 (((((cos-51 4) 15) 6) 2) 1)) 1) cos-68)) 3) ok Expression: (2 (67 ((51 1) 3) 3 (68)) 0) Translation: ((cos-= (((cos-67 ((cos-51 1) 3)) 3) cos-68)) 0) ok Expression: (2 (67 ((51 4) 4 6 0 10) 1 (68)) 100) Translation: ((cos-= (((cos-67 (((((cos-51 4) 4) 6) 0) 10)) 1) cos-68)) 100) ok Expression: (2 (67 ((51 6) 5 7 8 16 1 0) 13 (68)) 100) Translation: ((cos-= (((cos-67 (((((((cos-51 6) 5) 7) 8) 16) 1) 0)) 13) cos-68)) 100) ok Expression: (2 (67 ((51 8) 13 17 16 0 7 10 11 3) 15 (68)) 100) Translation: ((cos-= (((cos-67 (((((((((cos-51 8) 13) 17) 16) 0) 7) 10) 11) 3)) 15) cos-68)) 100) ok ; HACK describe changes to the implicit interpreter to allow new special forms Expression: (17 69 -1 25) Translation: (begin (define cos-69 cos-translate) 1) ok Expression: (17 25 -1 0 37 -1 18 (2 (37) 10) 15 (69 -1 37)) Translation: (begin (define cos-translate (lambda (cos-37) (if (tish ((cos-= cos-37) 10)) 15 (cos-69 cos-37)))) 1) ok Expression: (2 10 15) Translation: ((cos-= 15) 15) ok Expression: (2 (5 10 15) 30) Translation: ((cos-= ((cos-+ 15) 15)) 30) ok Expression: (17 25 -1 69) Translation: (begin (define cos-translate cos-69) 1) ok Expression: (8 -1 2 10 15) Translation: (cos-not ((cos-= 10) 15)) ok Expression: (2 (5 10 15) 25) Translation: ((cos-= ((cos-+ 10) 15)) 25) ok ; now can create a special form for lists Expression: (17 25 -1 0 37 -1 18 (24 -1 37) (69 -1 37) (18 (2 (52 -1 37) 70) (25 -1 57 ((51 2) 51 (55 -1 54 -1 37)) (54 -1 37)) (69 -1 37))) Translation: (begin (define cos-translate (lambda (cos-37) (if (tish (cos-number? cos-37)) (cos-69 cos-37) (if (tish ((cos-= (cos-52 cos-37)) 70)) (cos-translate ((cos-57 (((cos-51 2) 51) (cos-55 (cos-54 cos-37)))) (cos-54 cos-37))) (cos-69 cos-37))))) 1) ok Expression: (2 (70 1 2 3) ((51 3) 1 2 3)) Translation: ((cos-= ((((cos-51 3) 1) 2) 3)) ((((cos-51 3) 1) 2) 3)) ok ; now to desugar let expressions Expression: (17 71 -1 25) Translation: (begin (define cos-71 cos-translate) 1) ok Expression: (17 72 -1 0 37 -1 0 73 -1 18 (2 (55 -1 37) 0) (25 -1 73) (72 (54 -1 37) (70 (70 0 (52 -1 52 -1 37) (73)) (52 -1 54 -1 52 -1 37)))) Translation: (begin (define cos-72 (lambda (cos-37) (lambda (cos-73) (if (tish ((cos-= (cos-55 cos-37)) 0)) (cos-translate cos-73) ((cos-72 (cos-54 cos-37)) (((cos-51 2) ((((cos-51 3) 0) (cos-52 (cos-52 cos-37))) cos-73)) (cos-52 (cos-54 (cos-52 cos-37))))))))) 1) ok Expression: (17 25 -1 0 37 -1 18 (24 -1 37) (71 -1 37) (18 (2 (52 -1 37) 74) (72 (52 -1 54 -1 37) (52 -1 54 -1 54 -1 37)) (71 -1 37))) Translation: (begin (define cos-translate (lambda (cos-37) (if (tish (cos-number? cos-37)) (cos-71 cos-37) (if (tish ((cos-= (cos-52 cos-37)) 74)) ((cos-72 (cos-52 (cos-54 cos-37))) (cos-52 (cos-54 (cos-54 cos-37)))) (cos-71 cos-37))))) 1) ok Expression: (74 ((37 20)) (2 (37) 20)) Translation: ((lambda (cos-37) ((cos-= cos-37) 20)) 20) ok Expression: (74 ((37 50) (36 20)) (2 (7 (37) (36)) 30)) Translation: ((lambda (cos-36) ((lambda (cos-37) ((cos-= ((cos-- cos-37) cos-36)) 30)) 50)) 20) ok ; the is-list function is now on dubious ground ; this stuff will be replaced with typing ASAP Expression: (17 75 -1 0 37 -1 8 -1 24 -1 37) Translation: (begin (define cos-75 (lambda (cos-37) (cos-not (cos-number? cos-37)))) 1) ok Expression: (75 -1 (51 2) 1 3) Translation: (cos-75 (((cos-51 2) 1) 3)) ok Expression: (75 -1 (51 0)) Translation: (cos-75 (cos-51 0)) ok Expression: (8 -1 75 23) Translation: (cos-not (cos-75 23)) ok Expression: (75 -1 (51 3) ((51 2) 2 3) 1 (0 37 -1 5 (37) 10)) Translation: (cos-75 ((((cos-51 3) (((cos-51 2) 2) 3)) 1) (lambda (cos-37) ((cos-+ cos-37) 10)))) ok ; MATH introduce sugar for let ; if would be good to introduce desugarings more rigorously, but for now... ; ... just a very vague sketch Expression: (1 74) Translation: (cos-intro 74) ok Expression: (2 (74 ((37 10)) (5 (37) 5)) ((0 37 -1 5 (37) 5) 10)) Translation: ((cos-= ((lambda (cos-37) ((cos-+ cos-37) 5)) 10)) ((lambda (cos-37) ((cos-+ cos-37) 5)) 10)) ok Expression: (2 (74 ((37 10) (36 5)) (5 (37) (36))) (((0 37 -1 0 36 -1 5 (37) (36)) 10) 5)) Translation: ((cos-= ((lambda (cos-36) ((lambda (cos-37) ((cos-+ cos-37) cos-36)) 10)) 5)) (((lambda (cos-37) (lambda (cos-36) ((cos-+ cos-37) cos-36))) 10) 5)) ok ; MATH build up functions of several variables Expression: (2 ((0 37 -1 0 36 -1 7 (37) (36)) 7 4) 3) Translation: ((cos-= (((lambda (cos-37) (lambda (cos-36) ((cos-- cos-37) cos-36))) 7) 4)) 3) ok Expression: (2 ((0 37 -1 0 36 -1 7 (37) (36)) 12 8) 4) Translation: ((cos-= (((lambda (cos-37) (lambda (cos-36) ((cos-- cos-37) cos-36))) 12) 8)) 4) ok Expression: (2 ((0 37 -1 0 36 -1 7 (37) (36)) 12 8) 4) Translation: ((cos-= (((lambda (cos-37) (lambda (cos-36) ((cos-- cos-37) cos-36))) 12) 8)) 4) ok Expression: (2 ((0 37 -1 0 36 -1 7 (37) (36)) 8 2) 6) Translation: ((cos-= (((lambda (cos-37) (lambda (cos-36) ((cos-- cos-37) cos-36))) 8) 2)) 6) ok Expression: (2 ((0 37 -1 0 36 -1 7 (37) (36)) 14 5) 9) Translation: ((cos-= (((lambda (cos-37) (lambda (cos-36) ((cos-- cos-37) cos-36))) 14) 5)) 9) ok Expression: (17 76 -1 0 37 -1 56 (37) (7 (55 -1 37) 1)) Translation: (begin (define cos-76 (lambda (cos-37) ((cos-56 cos-37) ((cos-- (cos-55 cos-37)) 1)))) 1) ok Expression: (17 77 -1 0 37 -1 18 (3 (55 -1 37) 1) (57 (52 -1 37) (77 -1 54 -1 37)) (70)) Translation: (begin (define cos-77 (lambda (cos-37) (if (tish ((cos-> (cos-55 cos-37)) 1)) ((cos-57 (cos-52 cos-37)) (cos-77 (cos-54 cos-37))) (cos-51 0)))) 1) ok ; test last and except-last Expression: (2 15 (76 -1 70 4 5 15)) Translation: ((cos-= 15) (cos-76 ((((cos-51 3) 4) 5) 15))) ok Expression: (59 (70 4 5) (77 -1 70 4 5 15)) Translation: ((cos-59 (((cos-51 2) 4) 5)) (cos-77 ((((cos-51 3) 4) 5) 15))) ok Expression: (1 26) Translation: (cos-intro 26) ok Expression: (17 78 -1 25) Translation: (begin (define cos-78 cos-translate) 1) ok Expression: (17 25 -1 74 ((79 (78))) (0 37 -1 18 (24 -1 37) (79 -1 37) (18 (2 (52 -1 37) 26) (74 ((80 (52 -1 54 -1 37)) (73 (52 -1 54 -1 54 -1 37))) (18 (3 (55 -1 80) 0) (25 (70 26 (77 -1 80) (70 0 (76 -1 80) (73)))) (25 (73)))) (79 -1 37)))) Translation: (begin (define cos-translate ((lambda (cos-79) (lambda (cos-37) (if (tish (cos-number? cos-37)) (cos-79 cos-37) (if (tish ((cos-= (cos-52 cos-37)) 26)) ((lambda (cos-73) ((lambda (cos-80) (if (tish ((cos-> (cos-55 cos-80)) 0)) (cos-translate ((((cos-51 3) 26) (cos-77 cos-80)) ((((cos-51 3) 0) (cos-76 cos-80)) cos-73))) (cos-translate cos-73))) (cos-52 (cos-54 cos-37)))) (cos-52 (cos-54 (cos-54 cos-37)))) (cos-79 cos-37))))) cos-78)) 1) ok ; test lambda Expression: (2 ((26 (37 36) (7 (37) (36))) 3 2) 1) Translation: ((cos-= (((lambda (cos-37) (lambda (cos-36) ((cos-- cos-37) cos-36))) 3) 2)) 1) ok Expression: (2 ((26 (37 36) (7 (37) (36))) 6 6) 0) Translation: ((cos-= (((lambda (cos-37) (lambda (cos-36) ((cos-- cos-37) cos-36))) 6) 6)) 0) ok Expression: (2 ((26 (37 36) (7 (37) (36))) 14 8) 6) Translation: ((cos-= (((lambda (cos-37) (lambda (cos-36) ((cos-- cos-37) cos-36))) 14) 8)) 6) ok Expression: (2 ((26 (37 36) (7 (37) (36))) 10 8) 2) Translation: ((cos-= (((lambda (cos-37) (lambda (cos-36) ((cos-- cos-37) cos-36))) 10) 8)) 2) ok Expression: (2 ((26 (37 36) (7 (37) (36))) 11 5) 6) Translation: ((cos-= (((lambda (cos-37) (lambda (cos-36) ((cos-- cos-37) cos-36))) 11) 5)) 6) ok Expression: (17 81 -1 26 (37 36) (18 (59 (36) (70)) (37) (81 ((37) (52 -1 36)) (54 -1 36)))) Translation: (begin (define cos-81 (lambda (cos-37) (lambda (cos-36) (if (tish ((cos-59 cos-36) (cos-51 0))) cos-37 ((cos-81 (cos-37 (cos-52 cos-36))) (cos-54 cos-36)))))) 1) ok Expression: (2 (81 (26 (37 36) (7 (37) (36))) (70 14 9)) 5) Translation: ((cos-= ((cos-81 (lambda (cos-37) (lambda (cos-36) ((cos-- cos-37) cos-36)))) (((cos-51 2) 14) 9))) 5) ok Expression: (2 (81 (26 (37 36) (7 (37) (36))) (70 3 3)) 0) Translation: ((cos-= ((cos-81 (lambda (cos-37) (lambda (cos-36) ((cos-- cos-37) cos-36)))) (((cos-51 2) 3) 3))) 0) ok Expression: (2 (81 (26 (37 36) (7 (37) (36))) (70 7 1)) 6) Translation: ((cos-= ((cos-81 (lambda (cos-37) (lambda (cos-36) ((cos-- cos-37) cos-36)))) (((cos-51 2) 7) 1))) 6) ok Expression: (2 (81 (26 (37 36) (7 (37) (36))) (70 9 4)) 5) Translation: ((cos-= ((cos-81 (lambda (cos-37) (lambda (cos-36) ((cos-- cos-37) cos-36)))) (((cos-51 2) 9) 4))) 5) ok Expression: (2 (81 (26 (37 36) (7 (37) (36))) (70 5 5)) 0) Translation: ((cos-= ((cos-81 (lambda (cos-37) (lambda (cos-36) ((cos-- cos-37) cos-36)))) (((cos-51 2) 5) 5))) 0) ok ; MATH show map function for applying a function across the elements of a list Expression: (17 82 -1 26 (83 53) (18 (3 (55 -1 53) 0) (57 (83 (52 -1 53)) (82 (83) (54 -1 53))) (70))) Translation: (begin (define cos-82 (lambda (cos-83) (lambda (cos-53) (if (tish ((cos-> (cos-55 cos-53)) 0)) ((cos-57 (cos-83 (cos-52 cos-53))) ((cos-82 cos-83) (cos-54 cos-53))) (cos-51 0))))) 1) ok Expression: (2 (82 (0 37 -1 6 (37) 2) (70 12 4 13)) (70 24 8 26)) Translation: ((cos-= ((cos-82 (lambda (cos-37) ((cos-* cos-37) 2))) ((((cos-51 3) 12) 4) 13))) ((((cos-51 3) 24) 8) 26)) ok Expression: (2 (82 (0 37 -1 6 (37) 2) (70 7 15 19 14)) (70 14 30 38 28)) Translation: ((cos-= ((cos-82 (lambda (cos-37) ((cos-* cos-37) 2))) (((((cos-51 4) 7) 15) 19) 14))) (((((cos-51 4) 14) 30) 38) 28)) ok Expression: (2 (82 (0 37 -1 6 (37) 2) (70 2 4 17 6 8)) (70 4 8 34 12 16)) Translation: ((cos-= ((cos-82 (lambda (cos-37) ((cos-* cos-37) 2))) ((((((cos-51 5) 2) 4) 17) 6) 8))) ((((((cos-51 5) 4) 8) 34) 12) 16)) ok Expression: (2 (82 (0 37 -1 6 (37) 2) (70 15 18 17 10 16 4)) (70 30 36 34 20 32 8)) Translation: ((cos-= ((cos-82 (lambda (cos-37) ((cos-* cos-37) 2))) (((((((cos-51 6) 15) 18) 17) 10) 16) 4))) (((((((cos-51 6) 30) 36) 34) 20) 32) 8)) ok Expression: (2 (82 (0 37 42) (70 1 19 5)) (70 42 42 42)) Translation: ((cos-= ((cos-82 (lambda (cos-37) 42)) ((((cos-51 3) 1) 19) 5))) ((((cos-51 3) 42) 42) 42)) ok Expression: (2 (82 (0 37 42) (70 8 9 10 3)) (70 42 42 42 42)) Translation: ((cos-= ((cos-82 (lambda (cos-37) 42)) (((((cos-51 4) 8) 9) 10) 3))) (((((cos-51 4) 42) 42) 42) 42)) ok Expression: (2 (82 (0 37 42) (70 6 12 11 13 8)) (70 42 42 42 42 42)) Translation: ((cos-= ((cos-82 (lambda (cos-37) 42)) ((((((cos-51 5) 6) 12) 11) 13) 8))) ((((((cos-51 5) 42) 42) 42) 42) 42)) ok Expression: (2 (82 (0 37 42) (70 1 7 10 0 18 9)) (70 42 42 42 42 42 42)) Translation: ((cos-= ((cos-82 (lambda (cos-37) 42)) (((((((cos-51 6) 1) 7) 10) 0) 18) 9))) (((((((cos-51 6) 42) 42) 42) 42) 42) 42)) ok Expression: (17 84 -1 26 (83 53) (18 (10 (55 -1 53) 2) (83 (52 -1 53) (84 (83) (54 -1 53))) (18 (2 (55 -1 53) 1) (52 -1 53) (32)))) Translation: (begin (define cos-84 (lambda (cos-83) (lambda (cos-53) (if (tish ((cos->= (cos-55 cos-53)) 2)) ((cos-83 (cos-52 cos-53)) ((cos-84 cos-83) (cos-54 cos-53))) (if (tish ((cos-= (cos-55 cos-53)) 1)) (cos-52 cos-53) cos-undefined))))) 1) ok Expression: (2 (84 (5) (70 13 9 14)) 36) Translation: ((cos-= ((cos-84 cos-+) ((((cos-51 3) 13) 9) 14))) 36) ok Expression: (2 (84 (5) (70 14 8 6 19)) 47) Translation: ((cos-= ((cos-84 cos-+) (((((cos-51 4) 14) 8) 6) 19))) 47) ok Expression: (2 (84 (5) (70 17 10 4 16 15)) 62) Translation: ((cos-= ((cos-84 cos-+) ((((((cos-51 5) 17) 10) 4) 16) 15))) 62) ok Expression: (2 (84 (5) (70 18 15 4 3 8 10)) 58) Translation: ((cos-= ((cos-84 cos-+) (((((((cos-51 6) 18) 15) 4) 3) 8) 10))) 58) ok ; NOTE end of part 1, start of part 2 ; The following parts of the message are experimental, and not ; carefully integrated with the main body Expression: (1 85) Translation: (cos-intro 85) ok ; MATH show an example of recursive evaluation ; skipping over a lot of definitions and desugarings Expression: (17 86 -1 0 87 -1 0 37 -1 18 (3 (37) 0) (6 (37) -1 87 (87) (7 (37) 1)) 1) Translation: (begin (define cos-86 (lambda (cos-87) (lambda (cos-37) (if (tish ((cos-> cos-37) 0)) ((cos-* cos-37) ((cos-87 cos-87) ((cos-- cos-37) 1))) 1)))) 1) ok Expression: (17 45 -1 0 37 -1 18 (3 (37) 0) (6 (37) -1 45 -1 7 (37) 1) 1) Translation: (begin (define cos-45 (lambda (cos-37) (if (tish ((cos-> cos-37) 0)) ((cos-* cos-37) (cos-45 ((cos-- cos-37) 1))) 1))) 1) ok Expression: (2 (86 (86) 0) 1) Translation: ((cos-= ((cos-86 cos-86) 0)) 1) ok Expression: (2 (86 (86) 1) 1) Translation: ((cos-= ((cos-86 cos-86) 1)) 1) ok Expression: (2 (86 (86) 2) 2) Translation: ((cos-= ((cos-86 cos-86) 2)) 2) ok Expression: (2 (86 (86) 3) 6) Translation: ((cos-= ((cos-86 cos-86) 3)) 6) ok Expression: (2 (86 (86) 4) 24) Translation: ((cos-= ((cos-86 cos-86) 4)) 24) ok Expression: (2 (86 (86) 5) 120) Translation: ((cos-= ((cos-86 cos-86) 5)) 120) ok Expression: (2 (45 0) 1) Translation: ((cos-= (cos-45 0)) 1) ok Expression: (2 (45 1) 1) Translation: ((cos-= (cos-45 1)) 1) ok Expression: (2 (45 2) 2) Translation: ((cos-= (cos-45 2)) 2) ok Expression: (2 (45 3) 6) Translation: ((cos-= (cos-45 3)) 6) ok Expression: (2 (45 4) 24) Translation: ((cos-= (cos-45 4)) 24) ok Expression: (2 (45 5) 120) Translation: ((cos-= (cos-45 5)) 120) ok ; MATH some pure lambda calculus definitions - optional ; these definitions are not quite what we want ; since thinking of everything as a function requires headscratching ; it would be better to use these as a parallel means of evaluation ; ... for expressions Expression: (17 88 -1 0 37 -1 0 36 -1 0 38 -1 37 (36) (38)) Translation: (begin (define cos-88 (lambda (cos-37) (lambda (cos-36) (lambda (cos-38) ((cos-37 cos-36) cos-38))))) 1) ok Expression: (17 89 -1 0 36 -1 0 38 -1 36) Translation: (begin (define cos-89 (lambda (cos-36) (lambda (cos-38) cos-36))) 1) ok Expression: (17 90 -1 0 36 -1 0 38 -1 38) Translation: (begin (define cos-90 (lambda (cos-36) (lambda (cos-38) cos-38))) 1) ok Expression: (17 91 -1 0 37 -1 0 36 -1 0 38 -1 88 (38) (37) (36)) Translation: (begin (define cos-91 (lambda (cos-37) (lambda (cos-36) (lambda (cos-38) (((cos-88 cos-38) cos-37) cos-36))))) 1) ok Expression: (17 92 -1 0 37 -1 37 (89)) Translation: (begin (define cos-92 (lambda (cos-37) (cos-37 cos-89))) 1) ok Expression: (17 93 -1 0 37 -1 37 (90)) Translation: (begin (define cos-93 (lambda (cos-37) (cos-37 cos-90))) 1) ok Expression: (17 94 -1 0 87 -1 0 37 -1 37) Translation: (begin (define cos-94 (lambda (cos-87) (lambda (cos-37) cos-37))) 1) ok Expression: (17 95 -1 0 87 -1 0 37 -1 87 (37)) Translation: (begin (define cos-95 (lambda (cos-87) (lambda (cos-37) (cos-87 cos-37)))) 1) ok Expression: (17 96 -1 0 87 -1 0 37 -1 87 (87 (37))) Translation: (begin (define cos-96 (lambda (cos-87) (lambda (cos-37) (cos-87 (cos-87 cos-37))))) 1) ok Expression: (17 97 -1 0 46 -1 0 87 -1 0 37 -1 87 ((46 (87)) (37))) Translation: (begin (define cos-97 (lambda (cos-46) (lambda (cos-87) (lambda (cos-37) (cos-87 ((cos-46 cos-87) cos-37)))))) 1) ok Expression: (17 98 -1 0 99 -1 0 100 -1 (99 (97)) (100)) Translation: (begin (define cos-98 (lambda (cos-99) (lambda (cos-100) ((cos-99 cos-97) cos-100)))) 1) ok Expression: (17 101 -1 0 99 -1 0 100 -1 (99 (98 -1 100)) (94)) Translation: (begin (define cos-101 (lambda (cos-99) (lambda (cos-100) ((cos-99 (cos-98 cos-100)) cos-94)))) 1) ok Expression: (17 102 -1 0 46 -1 93 -1 (46 (0 83 -1 91 (97 -1 92 -1 83) (92 -1 83))) (91 (94) (94))) Translation: (begin (define cos-102 (lambda (cos-46) (cos-93 ((cos-46 (lambda (cos-83) ((cos-91 (cos-97 (cos-92 cos-83))) (cos-92 cos-83)))) ((cos-91 cos-94) cos-94))))) 1) ok Expression: (17 103 -1 0 46 -1 (46 (0 104 -1 90) (89))) Translation: (begin (define cos-103 (lambda (cos-46) ((cos-46 (lambda (cos-104) cos-90)) cos-89))) 1) ok Expression: (17 105 -1 0 87 -1 (0 37 -1 87 (37 (37))) (0 37 -1 87 (37 (37)))) Translation: (begin (define cos-105 (lambda (cos-87) ((lambda (cos-37) (cos-87 (cos-37 cos-37))) (lambda (cos-37) (cos-87 (cos-37 cos-37)))))) 1) ok ; .. but for rest of message will assume that define does fixed-point for us ; now build a link between numbers and church number functions Expression: (17 106 -1 0 107 -1 107 (0 37 -1 5 (37) 1) 0) Translation: (begin (define cos-106 (lambda (cos-107) ((cos-107 (lambda (cos-37) ((cos-+ cos-37) 1))) 0))) 1) ok Expression: (2 0 (106 -1 94)) Translation: ((cos-= 0) (cos-106 cos-94)) ok Expression: (2 1 (106 -1 95)) Translation: ((cos-= 1) (cos-106 cos-95)) ok Expression: (2 2 (106 -1 96)) Translation: ((cos-= 2) (cos-106 cos-96)) ok Expression: (17 108 -1 0 37 -1 18 (2 0 (37)) (94) (97 -1 108 -1 7 (37) 1)) Translation: (begin (define cos-108 (lambda (cos-37) (if (tish ((cos-= 0) cos-37)) cos-94 (cos-97 (cos-108 ((cos-- cos-37) 1)))))) 1) ok ; MATH introduce universal quantifier ; really need to link with sets for true correctness ; and the examples here are REALLY sparse, need much more Expression: (1 19) Translation: (cos-intro 19) ok Expression: (4 5 (5 5 1)) Translation: ((cos-< 5) ((cos-+ 5) 1)) ok Expression: (4 4 (5 4 1)) Translation: ((cos-< 4) ((cos-+ 4) 1)) ok Expression: (4 3 (5 3 1)) Translation: ((cos-< 3) ((cos-+ 3) 1)) ok Expression: (4 2 (5 2 1)) Translation: ((cos-< 2) ((cos-+ 2) 1)) ok Expression: (4 1 (5 1 1)) Translation: ((cos-< 1) ((cos-+ 1) 1)) ok Expression: (4 0 (5 0 1)) Translation: ((cos-< 0) ((cos-+ 0) 1)) ok Expression: (19 (0 37 -1 4 (37) (5 (37) 1))) Translation: (cos-forall (lambda (cos-37) ((cos-< cos-37) ((cos-+ cos-37) 1)))) ok Expression: (4 5 (6 5 2)) Translation: ((cos-< 5) ((cos-* 5) 2)) ok Expression: (4 4 (6 4 2)) Translation: ((cos-< 4) ((cos-* 4) 2)) ok Expression: (4 3 (6 3 2)) Translation: ((cos-< 3) ((cos-* 3) 2)) ok Expression: (4 2 (6 2 2)) Translation: ((cos-< 2) ((cos-* 2) 2)) ok Expression: (4 1 (6 1 2)) Translation: ((cos-< 1) ((cos-* 1) 2)) ok Expression: (8 -1 4 0 (6 0 2)) Translation: (cos-not ((cos-< 0) ((cos-* 0) 2))) ok Expression: (8 -1 19 (0 37 -1 4 (37) (6 (37) 2))) Translation: (cos-not (cos-forall (lambda (cos-37) ((cos-< cos-37) ((cos-* cos-37) 2))))) ok ; MATH introduce existential quantifier ; really need to link with sets for true correctness ; and the examples here are REALLY sparse, need much more Expression: (8 -1 2 5 (6 2 2)) Translation: (cos-not ((cos-= 5) ((cos-* 2) 2))) ok Expression: (2 4 (6 2 2)) Translation: ((cos-= 4) ((cos-* 2) 2)) ok Expression: (8 -1 2 3 (6 2 2)) Translation: (cos-not ((cos-= 3) ((cos-* 2) 2))) ok Expression: (8 -1 2 2 (6 2 2)) Translation: (cos-not ((cos-= 2) ((cos-* 2) 2))) ok Expression: (8 -1 2 1 (6 2 2)) Translation: (cos-not ((cos-= 1) ((cos-* 2) 2))) ok Expression: (8 -1 2 0 (6 2 2)) Translation: (cos-not ((cos-= 0) ((cos-* 2) 2))) ok Expression: (1 20) Translation: (cos-intro 20) ok Expression: (20 (0 37 -1 2 (37) (6 2 2))) Translation: (cos-exists (lambda (cos-37) ((cos-= cos-37) ((cos-* 2) 2)))) ok Expression: (8 -1 2 5 (5 5 2)) Translation: (cos-not ((cos-= 5) ((cos-+ 5) 2))) ok Expression: (8 -1 2 4 (5 4 2)) Translation: (cos-not ((cos-= 4) ((cos-+ 4) 2))) ok Expression: (8 -1 2 3 (5 3 2)) Translation: (cos-not ((cos-= 3) ((cos-+ 3) 2))) ok Expression: (8 -1 2 2 (5 2 2)) Translation: (cos-not ((cos-= 2) ((cos-+ 2) 2))) ok Expression: (8 -1 2 1 (5 1 2)) Translation: (cos-not ((cos-= 1) ((cos-+ 1) 2))) ok Expression: (8 -1 2 0 (5 0 2)) Translation: (cos-not ((cos-= 0) ((cos-+ 0) 2))) ok Expression: (8 (20 (0 37 -1 2 (37) (5 (37) 2)))) Translation: (cos-not (cos-exists (lambda (cos-37) ((cos-= cos-37) ((cos-+ cos-37) 2))))) ok ; MATH introduce logical implication Expression: (1 109) Translation: (cos-intro 109) ok Expression: (17 109 -1 0 37 -1 0 36 -1 8 -1 13 (37) (8 -1 36)) Translation: (begin (define cos-109 (lambda (cos-37) (lambda (cos-36) (cos-not ((cos-and cos-37) (cos-not cos-36)))))) 1) ok Expression: (109 (16) (16)) Translation: ((cos-109 cos-true) cos-true) ok Expression: (8 -1 109 (16) (15)) Translation: (cos-not ((cos-109 cos-true) cos-false)) ok Expression: (109 (15) (16)) Translation: ((cos-109 cos-false) cos-true) ok Expression: (109 (15) (15)) Translation: ((cos-109 cos-false) cos-false) ok Expression: (19 (0 37 -1 19 (0 36 -1 109 (109 (37) (36)) (109 (8 -1 36) (8 -1 37))))) Translation: (cos-forall (lambda (cos-37) (cos-forall (lambda (cos-36) ((cos-109 ((cos-109 cos-37) cos-36)) ((cos-109 (cos-not cos-36)) (cos-not cos-37))))))) ok ; MATH introduce sets and set membership Expression: (1 110) Translation: (cos-intro 110) ok Expression: (17 110 -1 0 37 -1 0 53 -1 8 -1 2 (63 (53) (37) (0 36 0) 1) 0) Translation: (begin (define cos-110 (lambda (cos-37) (lambda (cos-53) (cos-not ((cos-= ((((cos-63 cos-53) cos-37) (lambda (cos-36) 0)) 1)) 0))))) 1) ok Expression: (110 2 (70 8 9 2)) Translation: ((cos-110 2) ((((cos-51 3) 8) 9) 2)) ok Expression: (110 8 (70 8 9 2)) Translation: ((cos-110 8) ((((cos-51 3) 8) 9) 2)) ok Expression: (110 9 (70 8 9 2)) Translation: ((cos-110 9) ((((cos-51 3) 8) 9) 2)) ok Expression: (110 4 (70 6 1 4 9)) Translation: ((cos-110 4) (((((cos-51 4) 6) 1) 4) 9)) ok Expression: (110 1 (70 6 1 4 9)) Translation: ((cos-110 1) (((((cos-51 4) 6) 1) 4) 9)) ok Expression: (110 6 (70 6 1 4 9)) Translation: ((cos-110 6) (((((cos-51 4) 6) 1) 4) 9)) ok Expression: (110 1 (70 8 1 0 3 5)) Translation: ((cos-110 1) ((((((cos-51 5) 8) 1) 0) 3) 5)) ok Expression: (110 3 (70 8 1 0 3 5)) Translation: ((cos-110 3) ((((((cos-51 5) 8) 1) 0) 3) 5)) ok Expression: (110 0 (70 8 1 0 3 5)) Translation: ((cos-110 0) ((((((cos-51 5) 8) 1) 0) 3) 5)) ok Expression: (110 3 (70 4 0 3 7 9)) Translation: ((cos-110 3) ((((((cos-51 5) 4) 0) 3) 7) 9)) ok Expression: (110 0 (70 4 0 3 7 9)) Translation: ((cos-110 0) ((((((cos-51 5) 4) 0) 3) 7) 9)) ok Expression: (110 9 (70 4 0 3 7 9)) Translation: ((cos-110 9) ((((((cos-51 5) 4) 0) 3) 7) 9)) ok Expression: (110 3 (70 4 1 3 9)) Translation: ((cos-110 3) (((((cos-51 4) 4) 1) 3) 9)) ok Expression: (110 9 (70 4 1 3 9)) Translation: ((cos-110 9) (((((cos-51 4) 4) 1) 3) 9)) ok Expression: (110 4 (70 4 1 3 9)) Translation: ((cos-110 4) (((((cos-51 4) 4) 1) 3) 9)) ok Expression: (8 -1 110 8 (70 4 1 0 9)) Translation: (cos-not ((cos-110 8) (((((cos-51 4) 4) 1) 0) 9))) ok Expression: (8 -1 110 8 (70 6 4 0 7 5)) Translation: (cos-not ((cos-110 8) ((((((cos-51 5) 6) 4) 0) 7) 5))) ok Expression: (8 -1 110 1 (70 0 7)) Translation: (cos-not ((cos-110 1) (((cos-51 2) 0) 7))) ok Expression: (8 -1 110 4 (70 1 3 2 5)) Translation: (cos-not ((cos-110 4) (((((cos-51 4) 1) 3) 2) 5))) ok Expression: (8 -1 110 8 (70 3 7 2 5)) Translation: (cos-not ((cos-110 8) (((((cos-51 4) 3) 7) 2) 5))) ok ; rules for set equality Expression: (17 111 -1 0 37 -1 0 36 -1 18 (3 (55 -1 37) 0) (13 (110 (52 -1 37) (36)) (111 (54 -1 37) (36))) (16)) Translation: (begin (define cos-111 (lambda (cos-37) (lambda (cos-36) (if (tish ((cos-> (cos-55 cos-37)) 0)) ((cos-and ((cos-110 (cos-52 cos-37)) cos-36)) ((cos-111 (cos-54 cos-37)) cos-36)) cos-true)))) 1) ok Expression: (17 112 -1 0 37 -1 0 36 -1 13 (111 (37) (36)) (111 (36) (37))) Translation: (begin (define cos-112 (lambda (cos-37) (lambda (cos-36) ((cos-and ((cos-111 cos-37) cos-36)) ((cos-111 cos-36) cos-37))))) 1) ok Expression: (112 (70 1 5 9) (70 5 1 9)) Translation: ((cos-112 ((((cos-51 3) 1) 5) 9)) ((((cos-51 3) 5) 1) 9)) ok Expression: (112 (70 1 5 9) (70 9 1 5)) Translation: ((cos-112 ((((cos-51 3) 1) 5) 9)) ((((cos-51 3) 9) 1) 5)) ok Expression: (8 -1 112 (70 1 5 9) (70 1 5)) Translation: (cos-not ((cos-112 ((((cos-51 3) 1) 5) 9)) (((cos-51 2) 1) 5))) ok ; let's go leave ourselves wide open to Russell's paradox ; ... by using characteristic functions ; ... since it doesn't really matter for communication purposes ; ... and so far this is just used / tested with sets of integers really Expression: (110 5 (30 (0 37 -1 2 (5 (37) 10) 15))) Translation: ((cos-110 5) (cos-all (lambda (cos-37) ((cos-= ((cos-+ cos-37) 10)) 15)))) ok Expression: (110 3 (30 (0 37 -1 2 (6 (37) 3) (5 (37) 6)))) Translation: ((cos-110 3) (cos-all (lambda (cos-37) ((cos-= ((cos-* cos-37) 3)) ((cos-+ cos-37) 6))))) ok Expression: (17 113 -1 70) Translation: (begin (define cos-113 (cos-51 0)) 1) ok Expression: (110 0 (31)) Translation: ((cos-110 0) cos-natural-set) ok Expression: (19 (0 37 -1 109 (110 (37) (31)) (110 (5 (37) 1) (31)))) Translation: (cos-forall (lambda (cos-37) ((cos-109 ((cos-110 cos-37) cos-natural-set)) ((cos-110 ((cos-+ cos-37) 1)) cos-natural-set)))) ok Expression: (110 1 (31)) Translation: ((cos-110 1) cos-natural-set) ok Expression: (110 2 (31)) Translation: ((cos-110 2) cos-natural-set) ok Expression: (110 3 (31)) Translation: ((cos-110 3) cos-natural-set) ok Expression: (110 4 (31)) Translation: ((cos-110 4) cos-natural-set) ok Expression: (110 5 (31)) Translation: ((cos-110 5) cos-natural-set) ok Expression: (110 6 (31)) Translation: ((cos-110 6) cos-natural-set) ok Expression: (110 7 (31)) Translation: ((cos-110 7) cos-natural-set) ok Expression: (110 8 (31)) Translation: ((cos-110 8) cos-natural-set) ok Expression: (110 9 (31)) Translation: ((cos-110 9) cos-natural-set) ok Expression: (17 114 -1 70 (16) (15)) Translation: (begin (define cos-114 (((cos-51 2) cos-true) cos-false)) 1) ok Expression: (110 (16) (114)) Translation: ((cos-110 cos-true) cos-114) ok Expression: (110 (15) (114)) Translation: ((cos-110 cos-false) cos-114) ok ; actually, to simplify semantics elsewhere, true and false ; are now just 0 and 1 so they are not distinct from ints Expression: (17 115 -1 30 -1 0 37 -1 20 -1 0 36 -1 13 (110 (36) (31)) (2 (6 2 (36)) (37))) Translation: (begin (define cos-115 (cos-all (lambda (cos-37) (cos-exists (lambda (cos-36) ((cos-and ((cos-110 cos-36) cos-natural-set)) ((cos-= ((cos-* 2) cos-36)) cos-37))))))) 1) ok Expression: (110 0 (31)) Translation: ((cos-110 0) cos-natural-set) ok Expression: (110 0 (115)) Translation: ((cos-110 0) cos-115) ok Expression: (110 1 (31)) Translation: ((cos-110 1) cos-natural-set) ok Expression: (8 -1 110 1 (115)) Translation: (cos-not ((cos-110 1) cos-115)) ok Expression: (110 2 (31)) Translation: ((cos-110 2) cos-natural-set) ok Expression: (110 2 (115)) Translation: ((cos-110 2) cos-115) ok Expression: (110 3 (31)) Translation: ((cos-110 3) cos-natural-set) ok Expression: (8 -1 110 3 (115)) Translation: (cos-not ((cos-110 3) cos-115)) ok Expression: (110 4 (31)) Translation: ((cos-110 4) cos-natural-set) ok Expression: (110 4 (115)) Translation: ((cos-110 4) cos-115) ok Expression: (110 5 (31)) Translation: ((cos-110 5) cos-natural-set) ok Expression: (8 -1 110 5 (115)) Translation: (cos-not ((cos-110 5) cos-115)) ok Expression: (110 6 (31)) Translation: ((cos-110 6) cos-natural-set) ok Expression: (110 6 (115)) Translation: ((cos-110 6) cos-115) ok ; MATH introduce graph structures Expression: (17 116 -1 26 (117 118) (60 (117) (118))) Translation: (begin (define cos-116 (lambda (cos-117) (lambda (cos-118) ((cos-60 cos-117) cos-118)))) 1) ok Expression: (17 119 -1 116 (70 1 2 3 4) (70 (70 1 2) (70 2 3) (70 1 4))) Translation: (begin (define cos-119 ((cos-116 (((((cos-51 4) 1) 2) 3) 4)) ((((cos-51 3) (((cos-51 2) 1) 2)) (((cos-51 2) 2) 3)) (((cos-51 2) 1) 4)))) 1) ok Expression: (17 120 -1 26 (121 122 123) (20 -1 0 66 -1 18 (13 (10 (66) 0) (4 (66) (55 -1 56 (121) 1))) (59 (56 (56 (121) 1) (66)) (70 (122) (123))) (15))) Translation: (begin (define cos-120 (lambda (cos-121) (lambda (cos-122) (lambda (cos-123) (cos-exists (lambda (cos-66) (if (tish ((cos-and ((cos->= cos-66) 0)) ((cos-< cos-66) (cos-55 ((cos-56 cos-121) 1))))) ((cos-59 ((cos-56 ((cos-56 cos-121) 1)) cos-66)) (((cos-51 2) cos-122) cos-123)) cos-false))))))) 1) ok Expression: (2 (120 (119) 1 2) (16)) Translation: ((cos-= (((cos-120 cos-119) 1) 2)) cos-true) ok Expression: (2 (120 (119) 1 3) (15)) Translation: ((cos-= (((cos-120 cos-119) 1) 3)) cos-false) ok Expression: (2 (120 (119) 2 4) (15)) Translation: ((cos-= (((cos-120 cos-119) 2) 4)) cos-false) ok ; 'if' is used a lot in the next definition in place of and / or ; this is because I haven't established lazy evaluation forms for and / or ; so this very inefficient algorithm completely bogs down when combined ; ... during testing with a dumb implementation for 'exists'. Expression: (17 124 -1 26 (121 122 123) (18 (2 (122) (123)) (16) (18 (120 (121) (122) (123)) (16) (20 (0 125 -1 18 (120 (121) (122) (125)) (124 (121) (125) (123)) (15)))))) Translation: (begin (define cos-124 (lambda (cos-121) (lambda (cos-122) (lambda (cos-123) (if (tish ((cos-= cos-122) cos-123)) cos-true (if (tish (((cos-120 cos-121) cos-122) cos-123)) cos-true (cos-exists (lambda (cos-125) (if (tish (((cos-120 cos-121) cos-122) cos-125)) (((cos-124 cos-121) cos-125) cos-123) cos-false))))))))) 1) ok Expression: (2 (124 (119) 1 2) (16)) Translation: ((cos-= (((cos-124 cos-119) 1) 2)) cos-true) ok Expression: (2 (124 (119) 1 3) (16)) Translation: ((cos-= (((cos-124 cos-119) 1) 3)) cos-true) ok Expression: (2 (124 (119) 2 4) (15)) Translation: ((cos-= (((cos-124 cos-119) 2) 4)) cos-false) ok ; MATH show how to execute a sequence of instructions Expression: (1 126) Translation: (cos-intro 126) ok Expression: (17 78 -1 25) Translation: (begin (define cos-78 cos-translate) 1) ok Expression: (17 127 -1 0 37 -1 18 (10 (55 -1 37) 1) (57 (76 -1 37) (127 -1 77 -1 37)) (37)) Translation: (begin (define cos-127 (lambda (cos-37) (if (tish ((cos->= (cos-55 cos-37)) 1)) ((cos-57 (cos-76 cos-37)) (cos-127 (cos-77 cos-37))) cos-37))) 1) ok ; test reverse Expression: (59 (70 1 2 3) (127 -1 70 3 2 1)) Translation: ((cos-59 ((((cos-51 3) 1) 2) 3)) (cos-127 ((((cos-51 3) 3) 2) 1))) ok Expression: (17 25 -1 74 ((79 (78))) (0 37 -1 18 (24 -1 37) (79 -1 37) (18 (2 (52 -1 37) 126) (25 (70 (70 0 37 (70 52 (70 37))) (57 70 (127 -1 54 -1 37)))) (79 -1 37)))) Translation: (begin (define cos-translate ((lambda (cos-79) (lambda (cos-37) (if (tish (cos-number? cos-37)) (cos-79 cos-37) (if (tish ((cos-= (cos-52 cos-37)) 126)) (cos-translate (((cos-51 2) ((((cos-51 3) 0) 37) (((cos-51 2) 52) ((cos-51 1) 37)))) ((cos-57 70) (cos-127 (cos-54 cos-37))))) (cos-79 cos-37))))) cos-78)) 1) ok Expression: (2 (126 1 7 2 4) 4) Translation: ((cos-= ((lambda (cos-37) (cos-52 cos-37)) (((((cos-51 4) 4) 2) 7) 1))) 4) ok Expression: (2 (126 (28 (47) 88) (28 (47) 6) (29 -1 47)) 6) Translation: ((cos-= ((lambda (cos-37) (cos-52 cos-37)) ((((cos-51 3) (cos-get! cos-47)) ((cos-set! cos-47) 6)) ((cos-set! cos-47) 88)))) 6) ok Expression: (2 (126 (28 (48) 88) (28 (47) 6) (29 -1 48)) 88) Translation: ((cos-= ((lambda (cos-37) (cos-52 cos-37)) ((((cos-51 3) (cos-get! cos-48)) ((cos-set! cos-47) 6)) ((cos-set! cos-48) 88)))) 88) ok Expression: (2 (126 (28 (47) 88) (28 (47) 6) (29 -1 47) 4) 4) Translation: ((cos-= ((lambda (cos-37) (cos-52 cos-37)) (((((cos-51 4) 4) (cos-get! cos-47)) ((cos-set! cos-47) 6)) ((cos-set! cos-47) 88)))) 4) ok ; MATH introduce environment / hashmap structure ; this section needs a LOT more examples :-) ; note that at the time of writing (h 1 2) is same as ((h) 1 2) Expression: (17 128 -1 26 (129 37 36 38) (18 (58 (38) (37)) (36) (129 (38)))) Translation: (begin (define cos-128 (lambda (cos-129) (lambda (cos-37) (lambda (cos-36) (lambda (cos-38) (if (tish ((cos-58 cos-38) cos-37)) cos-36 (cos-129 cos-38))))))) 1) ok Expression: (17 130 -1 26 (129 37) (129 (37))) Translation: (begin (define cos-130 (lambda (cos-129) (lambda (cos-37) (cos-129 cos-37)))) 1) ok Expression: (17 131 -1 0 37 -1 32) Translation: (begin (define cos-131 (lambda (cos-37) cos-undefined)) 1) ok Expression: (17 132 -1 0 133 -1 0 37 -1 133) Translation: (begin (define cos-132 (lambda (cos-133) (lambda (cos-37) cos-133))) 1) ok Expression: (17 134 -1 128 (128 (131) 3 2) 4 9) Translation: (begin (define cos-134 (((cos-128 (((cos-128 cos-131) 3) 2)) 4) 9)) 1) ok Expression: (2 (130 (134) 4) 9) Translation: ((cos-= ((cos-130 cos-134) 4)) 9) ok Expression: (2 (130 (134) 3) 2) Translation: ((cos-= ((cos-130 cos-134) 3)) 2) ok Expression: (2 (130 (134) 8) (32)) Translation: ((cos-= ((cos-130 cos-134) 8)) cos-undefined) ok Expression: (2 (130 (134) 15) (32)) Translation: ((cos-= ((cos-130 cos-134) 15)) cos-undefined) ok Expression: (2 (130 (128 (134) 15 33) 15) 33) Translation: ((cos-= ((cos-130 (((cos-128 cos-134) 15) 33)) 15)) 33) ok Expression: (2 (130 (134) 15) (32)) Translation: ((cos-= ((cos-130 cos-134) 15)) cos-undefined) ok Expression: (17 135 -1 0 37 -1 18 (59 (37) (70)) (131) (128 (135 (54 -1 37)) (61 -1 52 -1 37) (62 -1 52 -1 37))) Translation: (begin (define cos-135 (lambda (cos-37) (if (tish ((cos-59 cos-37) (cos-51 0))) cos-131 (((cos-128 (cos-135 (cos-54 cos-37))) (cos-61 (cos-52 cos-37))) (cos-62 (cos-52 cos-37)))))) 1) ok Expression: (2 (130 (135 -1 70 (60 3 10) (60 2 20) (60 1 30)) 3) 10) Translation: ((cos-= ((cos-130 (cos-135 ((((cos-51 3) ((cos-60 3) 10)) ((cos-60 2) 20)) ((cos-60 1) 30)))) 3)) 10) ok Expression: (2 (130 (135 -1 70 (60 3 10) (60 2 20) (60 1 30)) 1) 30) Translation: ((cos-= ((cos-130 (cos-135 ((((cos-51 3) ((cos-60 3) 10)) ((cos-60 2) 20)) ((cos-60 1) 30)))) 1)) 30) ok ; OBJECT introduce simple mutable structures Expression: (17 136 -1 0 53 -1 74 ((137 (82 (0 37 -1 27 0) (53)))) (0 64 -1 56 (137) (67 (53) (64) (0 37 0)))) Translation: (begin (define cos-136 (lambda (cos-53) ((lambda (cos-137) (lambda (cos-64) ((cos-56 cos-137) (((cos-67 cos-53) cos-64) (lambda (cos-37) 0))))) ((cos-82 (lambda (cos-37) (cos-make-cell 0))) cos-53)))) 1) ok Expression: (17 138 -1 136 -1 70 139 140 141) Translation: (begin (define cos-138 (cos-136 ((((cos-51 3) 139) 140) 141))) 1) ok Expression: (28 (138 139) 15) Translation: ((cos-set! (cos-138 139)) 15) ok Expression: (2 (29 -1 138 139) 15) Translation: ((cos-= (cos-get! (cos-138 139))) 15) ok ; OBJECT introduce method handler wrappers Expression: (17 142 -1 26 (143 144 145) (128 (143) (144) (0 104 -1 145 -1 143))) Translation: (begin (define cos-142 (lambda (cos-143) (lambda (cos-144) (lambda (cos-145) (((cos-128 cos-143) cos-144) (lambda (cos-104) (cos-145 cos-143))))))) 1) ok Expression: (17 146 -1 0 37 -1 37 0) Translation: (begin (define cos-146 (lambda (cos-37) (cos-37 0))) 1) ok Expression: (17 147 -1 136 -1 70 37 36) Translation: (begin (define cos-147 (cos-136 (((cos-51 2) 37) 36))) 1) ok Expression: (28 (147 37) 10) Translation: ((cos-set! (cos-147 37)) 10) ok Expression: (28 (147 36) 20) Translation: ((cos-set! (cos-147 36)) 20) ok Expression: (2 (29 -1 147 37) 10) Translation: ((cos-= (cos-get! (cos-147 37))) 10) ok Expression: (2 (29 -1 147 36) 20) Translation: ((cos-= (cos-get! (cos-147 36))) 20) ok Expression: (17 148 -1 142 (147) 149 (0 150 -1 5 (29 -1 150 37) (29 -1 150 36))) Translation: (begin (define cos-148 (((cos-142 cos-147) 149) (lambda (cos-150) ((cos-+ (cos-get! (cos-150 37))) (cos-get! (cos-150 36)))))) 1) ok Expression: (2 (29 -1 148 37) 10) Translation: ((cos-= (cos-get! (cos-148 37))) 10) ok Expression: (2 (29 -1 148 36) 20) Translation: ((cos-= (cos-get! (cos-148 36))) 20) ok Expression: (2 (146 -1 148 149) 30) Translation: ((cos-= (cos-146 (cos-148 149))) 30) ok Expression: (28 (148 36) 10) Translation: ((cos-set! (cos-148 36)) 10) ok Expression: (2 (146 -1 148 149) 20) Translation: ((cos-= (cos-146 (cos-148 149))) 20) ok Expression: (28 (147 36) 5) Translation: ((cos-set! (cos-147 36)) 5) ok Expression: (2 (146 -1 148 149) 15) Translation: ((cos-= (cos-146 (cos-148 149))) 15) ok ; TURING introduce turing machine model ; just for fun! Expression: (17 151 -1 0 37 -1 18 (3 (55 -1 37) 0) (18 (3 (55 -1 37) 1) (54 -1 37) (70 -1 70)) (0 70 -1 70)) Translation: (begin (define cos-151 (lambda (cos-37) (if (tish ((cos-> (cos-55 cos-37)) 0)) (if (tish ((cos-> (cos-55 cos-37)) 1)) (cos-54 cos-37) ((cos-51 1) (cos-51 0))) (lambda (cos-70) (cos-51 0))))) 1) ok Expression: (17 152 -1 0 37 -1 18 (3 (55 -1 37) 0) (52 -1 37) (70)) Translation: (begin (define cos-152 (lambda (cos-37) (if (tish ((cos-> (cos-55 cos-37)) 0)) (cos-52 cos-37) (cos-51 0)))) 1) ok Expression: (17 153 -1 0 154 -1 74 ((37 (62 -1 154))) (18 (3 (55 -1 37) 0) (52 -1 37) (70))) Translation: (begin (define cos-153 (lambda (cos-154) ((lambda (cos-37) (if (tish ((cos-> (cos-55 cos-37)) 0)) (cos-52 cos-37) (cos-51 0))) (cos-62 cos-154)))) 1) ok Expression: (17 155 -1 26 (154 156 157) (18 (2 (156) 1) (60 (57 (157) (61 -1 154)) (151 -1 62 -1 154)) (18 (2 (156) 0) (60 (151 -1 61 -1 154) (57 (152 -1 61 -1 154) (57 (157) (151 -1 62 -1 154)))) (60 (61 -1 154) (57 (157) (151 -1 62 -1 154)))))) Translation: (begin (define cos-155 (lambda (cos-154) (lambda (cos-156) (lambda (cos-157) (if (tish ((cos-= cos-156) 1)) ((cos-60 ((cos-57 cos-157) (cos-61 cos-154))) (cos-151 (cos-62 cos-154))) (if (tish ((cos-= cos-156) 0)) ((cos-60 (cos-151 (cos-61 cos-154))) ((cos-57 (cos-152 (cos-61 cos-154))) ((cos-57 cos-157) (cos-151 (cos-62 cos-154))))) ((cos-60 (cos-61 cos-154)) ((cos-57 cos-157) (cos-151 (cos-62 cos-154)))))))))) 1) ok Expression: (17 158 -1 26 (159 160 76 154) (18 (2 (160) (76)) (154) (74 ((161 (159 (160) (153 -1 154)))) (158 (159) (56 (161) 0) (76) (155 (154) (56 (161) 1) (56 (161) 2)))))) Translation: (begin (define cos-158 (lambda (cos-159) (lambda (cos-160) (lambda (cos-76) (lambda (cos-154) (if (tish ((cos-= cos-160) cos-76)) cos-154 ((lambda (cos-161) ((((cos-158 cos-159) ((cos-56 cos-161) 0)) cos-76) (((cos-155 cos-154) ((cos-56 cos-161) 1)) ((cos-56 cos-161) 2)))) ((cos-159 cos-160) (cos-153 cos-154))))))))) 1) ok Expression: (17 162 -1 0 37 -1 60 (70) (37)) Translation: (begin (define cos-162 (lambda (cos-37) ((cos-60 (cos-51 0)) cos-37))) 1) ok Expression: (17 163 -1 0 37 -1 0 53 -1 18 (3 (55 -1 53) 0) (18 (2 (76 -1 53) (37)) (163 (37) (77 -1 53)) (53)) (53)) Translation: (begin (define cos-163 (lambda (cos-37) (lambda (cos-53) (if (tish ((cos-> (cos-55 cos-53)) 0)) (if (tish ((cos-= (cos-76 cos-53)) cos-37)) ((cos-163 cos-37) (cos-77 cos-53)) cos-53) cos-53)))) 1) ok Expression: (17 164 -1 0 37 -1 163 (70) (62 -1 37)) Translation: (begin (define cos-164 (lambda (cos-37) ((cos-163 (cos-51 0)) (cos-62 cos-37)))) 1) ok Expression: (17 165 -1 135 -1 70 (60 166 (135 -1 70 (60 0 (70 166 1 0)) (60 1 (70 166 1 1)) (60 (70) (70 167 0 (70))))) (60 167 (135 -1 70 (60 0 (70 168 0 1)) (60 1 (70 167 0 0)) (60 (70) (70 169 2 1)))) (60 168 (135 -1 70 (60 0 (70 168 0 0)) (60 1 (70 168 0 1)) (60 (70) (70 169 1 (70))))) (60 169 (135 -1 70))) Translation: (begin (define cos-165 (cos-135 (((((cos-51 4) ((cos-60 166) (cos-135 ((((cos-51 3) ((cos-60 0) ((((cos-51 3) 166) 1) 0))) ((cos-60 1) ((((cos-51 3) 166) 1) 1))) ((cos-60 (cos-51 0)) ((((cos-51 3) 167) 0) (cos-51 0))))))) ((cos-60 167) (cos-135 ((((cos-51 3) ((cos-60 0) ((((cos-51 3) 168) 0) 1))) ((cos-60 1) ((((cos-51 3) 167) 0) 0))) ((cos-60 (cos-51 0)) ((((cos-51 3) 169) 2) 1)))))) ((cos-60 168) (cos-135 ((((cos-51 3) ((cos-60 0) ((((cos-51 3) 168) 0) 0))) ((cos-60 1) ((((cos-51 3) 168) 0) 1))) ((cos-60 (cos-51 0)) ((((cos-51 3) 169) 1) (cos-51 0))))))) ((cos-60 169) (cos-135 (cos-51 0)))))) 1) ok Expression: (2 (164 -1 158 (165) 166 169 (162 -1 70 1 0 0 1)) (70 1 0 1 0)) Translation: ((cos-= (cos-164 ((((cos-158 cos-165) 166) 169) (cos-162 (((((cos-51 4) 1) 0) 0) 1))))) (((((cos-51 4) 1) 0) 1) 0)) ok Expression: (2 (164 -1 158 (165) 166 169 (162 -1 70 1 1 1)) (70 1 0 0 0)) Translation: ((cos-= (cos-164 ((((cos-158 cos-165) 166) 169) (cos-162 ((((cos-51 3) 1) 1) 1))))) (((((cos-51 4) 1) 0) 0) 0)) ok Expression: (2 (164 -1 158 (165) 166 169 (162 -1 70 1 1 1 0 0 0 1 1 1)) (70 1 1 1 0 0 1 0 0 0)) Translation: ((cos-= (cos-164 ((((cos-158 cos-165) 166) 169) (cos-162 ((((((((((cos-51 9) 1) 1) 1) 0) 0) 0) 1) 1) 1))))) ((((((((((cos-51 9) 1) 1) 1) 0) 0) 1) 0) 0) 0)) ok ; OBJECT introduce simple form of typing, for ease of documentation. ; An object is simply a function that takes an argument. ; The argument is the method to call on the object. ; Types are here taken to be just the existence of a particular method, ; with that method returning an object of the appropriate type. Expression: (17 170 (26 (171) (26 (37) (18 (2 (37) 172) (171) 0)))) Translation: (begin (define cos-170 (lambda (cos-171) (lambda (cos-37) (if (tish ((cos-= cos-37) 172)) cos-171 0)))) 1) ok Expression: (17 173 (0 37 (18 (24 (37)) (170 (37)) (37)))) Translation: (begin (define cos-173 (lambda (cos-37) (if (tish (cos-number? cos-37)) (cos-170 cos-37) cos-37))) 1) ok Expression: (17 174 (26 (175 176) (18 (24 (176)) (2 (175) 172) (8 (24 ((173 (176)) (175))))))) Translation: (begin (define cos-174 (lambda (cos-175) (lambda (cos-176) (if (tish (cos-number? cos-176)) ((cos-= cos-175) 172) (cos-not (cos-number? ((cos-173 cos-176) cos-175))))))) 1) ok ; add version of lambda that allows types to be declared Expression: (17 78 (25)) Translation: (begin (define cos-78 cos-translate) 1) ok Expression: (17 25 (74 ((79 (78))) (0 37 (18 (24 (37)) (79 (37)) (18 (2 (52 (37)) 26) (74 ((80 (52 (54 (37)))) (73 (52 (54 (54 (37)))))) (18 (3 (55 (80)) 0) (18 (24 (76 (80))) (25 (70 26 (77 (80)) (70 0 (76 (80)) (73)))) (74 ((177 (61 (76 (80)))) (178 (62 (76 (80))))) (25 (70 26 (77 (80)) (70 0 (177) (70 74 (70 (70 (177) (70 (70 173 (70 (177))) (178)))) (73))))))) (25 (73)))) (79 (37))))))) Translation: (begin (define cos-translate ((lambda (cos-79) (lambda (cos-37) (if (tish (cos-number? cos-37)) (cos-79 cos-37) (if (tish ((cos-= (cos-52 cos-37)) 26)) ((lambda (cos-73) ((lambda (cos-80) (if (tish ((cos-> (cos-55 cos-80)) 0)) (if (tish (cos-number? (cos-76 cos-80))) (cos-translate ((((cos-51 3) 26) (cos-77 cos-80)) ((((cos-51 3) 0) (cos-76 cos-80)) cos-73))) ((lambda (cos-178) ((lambda (cos-177) (cos-translate ((((cos-51 3) 26) (cos-77 cos-80)) ((((cos-51 3) 0) cos-177) ((((cos-51 3) 74) ((cos-51 1) (((cos-51 2) cos-177) (((cos-51 2) (((cos-51 2) 173) ((cos-51 1) cos-177))) cos-178)))) cos-73))))) (cos-61 (cos-76 cos-80)))) (cos-62 (cos-76 cos-80)))) (cos-translate cos-73))) (cos-52 (cos-54 cos-37)))) (cos-52 (cos-54 (cos-54 cos-37)))) (cos-79 cos-37))))) cos-78)) 1) ok ; add conditional form Expression: (17 78 (25)) Translation: (begin (define cos-78 cos-translate) 1) ok Expression: (17 25 (74 ((79 (78))) (0 37 (18 (24 (37)) (79 (37)) (18 (2 (52 (37)) 179) (74 ((180 (52 (54 (37)))) (181 (54 (54 (37))))) (18 (3 (55 (181)) 0) (25 (70 18 (61 (180)) (62 (180)) (57 179 (181)))) (25 (180)))) (79 (37))))))) Translation: (begin (define cos-translate ((lambda (cos-79) (lambda (cos-37) (if (tish (cos-number? cos-37)) (cos-79 cos-37) (if (tish ((cos-= (cos-52 cos-37)) 179)) ((lambda (cos-181) ((lambda (cos-180) (if (tish ((cos-> (cos-55 cos-181)) 0)) (cos-translate (((((cos-51 4) 18) (cos-61 cos-180)) (cos-62 cos-180)) ((cos-57 179) cos-181))) (cos-translate cos-180))) (cos-52 (cos-54 cos-37)))) (cos-54 (cos-54 cos-37))) (cos-79 cos-37))))) cos-78)) 1) ok Expression: (2 99 (179 99)) Translation: ((cos-= 99) 99) ok Expression: (2 8 (179 ((16) 8) 11)) Translation: ((cos-= 8) (if (tish cos-true) 8 11)) ok Expression: (2 11 (179 ((15) 8) 11)) Translation: ((cos-= 11) (if (tish cos-false) 8 11)) ok Expression: (2 7 (179 ((15) 3) ((16) 7) 11)) Translation: ((cos-= 7) (if (tish cos-false) 3 (if (tish cos-true) 7 11))) ok Expression: (2 3 (179 ((16) 3) ((16) 7) 11)) Translation: ((cos-= 3) (if (tish cos-true) 3 (if (tish cos-true) 7 11))) ok Expression: (2 11 (179 ((15) 3) ((15) 7) 11)) Translation: ((cos-= 11) (if (tish cos-false) 3 (if (tish cos-false) 7 11))) ok Expression: (17 182 (26 (183 53) (18 (3 (55 (53)) 0) (18 (183 (52 (53))) (182 (183) (54 (53))) (57 (52 (53)) (182 (183) (54 (53))))) (53)))) Translation: (begin (define cos-182 (lambda (cos-183) (lambda (cos-53) (if (tish ((cos-> (cos-55 cos-53)) 0)) (if (tish (cos-183 (cos-52 cos-53))) ((cos-182 cos-183) (cos-54 cos-53)) ((cos-57 (cos-52 cos-53)) ((cos-182 cos-183) (cos-54 cos-53)))) cos-53)))) 1) ok Expression: (17 184 (26 (37) (182 (26 (36) (2 (36) (37)))))) Translation: (begin (define cos-184 (lambda (cos-37) (cos-182 (lambda (cos-36) ((cos-= cos-36) cos-37))))) 1) ok Expression: (59 (70 1 2 3 5) (184 4 (70 1 2 3 4 5))) Translation: ((cos-59 (((((cos-51 4) 1) 2) 3) 5)) ((cos-184 4) ((((((cos-51 5) 1) 2) 3) 4) 5))) ok Expression: (59 (70 1 2 3 5) (184 4 (70 1 4 2 4 3 4 5))) Translation: ((cos-59 (((((cos-51 4) 1) 2) 3) 5)) ((cos-184 4) ((((((((cos-51 7) 1) 4) 2) 4) 3) 4) 5))) ok Expression: (17 185 (26 (175 176) (74 ((186 (173 (176)))) (186 (175))))) Translation: (begin (define cos-185 (lambda (cos-175) (lambda (cos-176) ((lambda (cos-186) (cos-186 cos-175)) (cos-173 cos-176))))) 1) ok Expression: (17 187 (26 ((37 172) (36 172)) (185 172 (5 (37) (36))))) Translation: (begin (define cos-187 (lambda (cos-37) ((lambda (cos-37) (lambda (cos-36) ((lambda (cos-36) ((cos-185 172) ((cos-+ cos-37) cos-36))) ((cos-173 cos-36) 172)))) ((cos-173 cos-37) 172)))) 1) ok Expression: (2 42 (187 (170 10) (170 32))) Translation: ((cos-= 42) ((cos-187 (cos-170 10)) (cos-170 32))) ok Expression: (2 42 (187 10 32)) Translation: ((cos-= 42) ((cos-187 10) 32)) ok Expression: (17 188 (26 (87) ((26 (37) (87 (26 (36) ((37 (37)) (36))))) (26 (37) (87 (26 (36) ((37 (37)) (36)))))))) Translation: (begin (define cos-188 (lambda (cos-87) ((lambda (cos-37) (cos-87 (lambda (cos-36) ((cos-37 cos-37) cos-36)))) (lambda (cos-37) (cos-87 (lambda (cos-36) ((cos-37 cos-37) cos-36))))))) 1) ok ; OBJECT an example object -- a 2D point Expression: (17 189 (26 (37 36) (188 (26 (150 190) (179 ((2 (190) 37) (37)) ((2 (190) 36) (36)) ((2 (190) 189) (150)) ((2 (190) 5) (26 ((83 189)) (189 (5 (37) (83 37)) (5 (36) (83 36))))) ((2 (190) 2) (26 ((83 189)) (13 (2 (37) (83 37)) (2 (36) (83 36))))) 0))))) Translation: (begin (define cos-189 (lambda (cos-37) (lambda (cos-36) (cos-188 (lambda (cos-150) (lambda (cos-190) (if (tish ((cos-= cos-190) 37)) cos-37 (if (tish ((cos-= cos-190) 36)) cos-36 (if (tish ((cos-= cos-190) 189)) cos-150 (if (tish ((cos-= cos-190) 5)) (lambda (cos-83) ((lambda (cos-83) ((cos-189 ((cos-+ cos-37) (cos-83 37))) ((cos-+ cos-36) (cos-83 36)))) ((cos-173 cos-83) 189))) (if (tish ((cos-= cos-190) 2)) (lambda (cos-83) ((lambda (cos-83) ((cos-and ((cos-= cos-37) (cos-83 37))) ((cos-= cos-36) (cos-83 36)))) ((cos-173 cos-83) 189))) 0))))))))))) 1) ok Expression: (17 191 (189 1 11)) Translation: (begin (define cos-191 ((cos-189 1) 11)) 1) ok Expression: (17 192 (189 2 22)) Translation: (begin (define cos-192 ((cos-189 2) 22)) 1) ok Expression: (2 1 (191 37)) Translation: ((cos-= 1) (cos-191 37)) ok Expression: (2 22 (192 36)) Translation: ((cos-= 22) (cos-192 36)) ok Expression: (2 11 ((189 11 12) 37)) Translation: ((cos-= 11) (((cos-189 11) 12) 37)) ok Expression: (2 11 (((189 11 12) 189) 37)) Translation: ((cos-= 11) ((((cos-189 11) 12) 189) 37)) ok Expression: (2 16 (((189 16 17) 189) 37)) Translation: ((cos-= 16) ((((cos-189 16) 17) 189) 37)) ok Expression: (2 33 (191 5 (192) 36)) Translation: ((cos-= 33) (((cos-191 5) cos-192) 36)) ok Expression: (191 5 (192) 2 (189 3 33)) Translation: ((((cos-191 5) cos-192) 2) ((cos-189 3) 33)) ok Expression: (192 5 (191) 2 (189 3 33)) Translation: ((((cos-192 5) cos-191) 2) ((cos-189 3) 33)) ok Expression: ((189 100 200) 5 (189 200 100) 2 (189 300 300)) Translation: ((((((cos-189 100) 200) 5) ((cos-189 200) 100)) 2) ((cos-189 300) 300)) ok Expression: (174 189 (191)) Translation: ((cos-174 189) cos-191) ok Expression: (8 (174 172 (191))) Translation: (cos-not ((cos-174 172) cos-191)) ok Expression: (174 172 5) Translation: ((cos-174 172) 5) ok Expression: (8 (174 189 5)) Translation: (cos-not ((cos-174 189) 5)) ok ; OBJECT an example object -- a container Expression: (17 193 (26 (37) (74 ((194 (27 (70)))) (188 (26 (150 190) (179 ((2 (190) 193) (150)) ((2 (190) 195) (29 (194))) ((2 (190) 98) (26 (37) (18 (8 (110 (37) (29 (194)))) (28 (194) (57 (37) (29 (194)))) (15)))) ((2 (190) 196) (26 (37) (28 (194) (184 (37) (29 (194)))))) ((2 (190) 2) (26 ((107 193)) (112 (150 195) (107 195)))) 0)))))) Translation: (begin (define cos-193 (lambda (cos-37) ((lambda (cos-194) (cos-188 (lambda (cos-150) (lambda (cos-190) (if (tish ((cos-= cos-190) 193)) cos-150 (if (tish ((cos-= cos-190) 195)) (cos-get! cos-194) (if (tish ((cos-= cos-190) 98)) (lambda (cos-37) (if (tish (cos-not ((cos-110 cos-37) (cos-get! cos-194)))) ((cos-set! cos-194) ((cos-57 cos-37) (cos-get! cos-194))) cos-false)) (if (tish ((cos-= cos-190) 196)) (lambda (cos-37) ((cos-set! cos-194) ((cos-184 cos-37) (cos-get! cos-194)))) (if (tish ((cos-= cos-190) 2)) (lambda (cos-107) ((lambda (cos-107) ((cos-112 (cos-150 195)) (cos-107 195))) ((cos-173 cos-107) 193))) 0))))))))) (cos-make-cell (cos-51 0))))) 1) ok ; Can pass anything to container function to create an object ; Should eventually use a consistent protocol for all objects, ; but all this stuff is still in flux Expression: (17 197 (193 198)) Translation: (begin (define cos-197 (cos-193 198)) 1) ok Expression: (197 98 77) Translation: ((cos-197 98) 77) ok Expression: (197 98 88) Translation: ((cos-197 98) 88) ok Expression: (197 98 99) Translation: ((cos-197 98) 99) ok Expression: (112 (197 195) (70 77 88 99)) Translation: ((cos-112 (cos-197 195)) ((((cos-51 3) 77) 88) 99)) ok Expression: (197 196 88) Translation: ((cos-197 196) 88) ok Expression: (112 (197 195) (70 77 99)) Translation: ((cos-112 (cos-197 195)) (((cos-51 2) 77) 99)) ok Expression: (17 199 (193 198)) Translation: (begin (define cos-199 (cos-193 198)) 1) ok Expression: (199 98 77) Translation: ((cos-199 98) 77) ok Expression: (199 98 99) Translation: ((cos-199 98) 99) ok Expression: (199 2 (197)) Translation: ((cos-199 2) cos-197) ok ; OBJECT expressing inheritance ; counter-container adds one method to container: count Expression: (17 200 (26 (37) (74 ((201 (193 198))) (188 (26 (150 190) (179 ((2 (190) 200) (150)) ((2 (190) 202) (55 (201 195))) (201 (190)))))))) Translation: (begin (define cos-200 (lambda (cos-37) ((lambda (cos-201) (cos-188 (lambda (cos-150) (lambda (cos-190) (if (tish ((cos-= cos-190) 200)) cos-150 (if (tish ((cos-= cos-190) 202)) (cos-55 (cos-201 195)) (cos-201 cos-190))))))) (cos-193 198)))) 1) ok Expression: (17 203 (200 198)) Translation: (begin (define cos-203 (cos-200 198)) 1) ok Expression: (2 0 (203 202)) Translation: ((cos-= 0) (cos-203 202)) ok Expression: (203 98 4) Translation: ((cos-203 98) 4) ok Expression: (2 1 (203 202)) Translation: ((cos-= 1) (cos-203 202)) ok Expression: (203 98 5) Translation: ((cos-203 98) 5) ok Expression: (2 2 (203 202)) Translation: ((cos-= 2) (cos-203 202)) ok ; OBJECT adding a special form for classes ; need a bunch of extra machinery first, will push this ; back into previous sections eventually, and simplify Expression: (17 204 (26 (205 206) (18 (3 (55 (205)) 0) (204 (77 (205)) (57 (76 (205)) (206))) (206)))) Translation: (begin (define cos-204 (lambda (cos-205) (lambda (cos-206) (if (tish ((cos-> (cos-55 cos-205)) 0)) ((cos-204 (cos-77 cos-205)) ((cos-57 (cos-76 cos-205)) cos-206)) cos-206)))) 1) ok Expression: (2 (204 (70 1 2 3) (70 4 5 6)) (70 1 2 3 4 5 6)) Translation: ((cos-= ((cos-204 ((((cos-51 3) 1) 2) 3)) ((((cos-51 3) 4) 5) 6))) (((((((cos-51 6) 1) 2) 3) 4) 5) 6)) ok Expression: (17 207 (0 37 (0 53 (18 (3 (55 (53)) 0) (57 (52 (53)) (207 (37) (54 (53)))) (70 (37)))))) Translation: (begin (define cos-207 (lambda (cos-37) (lambda (cos-53) (if (tish ((cos-> (cos-55 cos-53)) 0)) ((cos-57 (cos-52 cos-53)) ((cos-207 cos-37) (cos-54 cos-53))) ((cos-51 1) cos-37))))) 1) ok Expression: (2 (207 5 (70 1 2)) (70 1 2 5)) Translation: ((cos-= ((cos-207 5) (((cos-51 2) 1) 2))) ((((cos-51 3) 1) 2) 5)) ok Expression: (17 208 (26 (183 53) (18 (3 (55 (53)) 0) (18 (183 (52 (53))) (57 (52 (53)) (208 (183) (54 (53)))) (208 (183) (54 (53)))) (53)))) Translation: (begin (define cos-208 (lambda (cos-183) (lambda (cos-53) (if (tish ((cos-> (cos-55 cos-53)) 0)) (if (tish (cos-183 (cos-52 cos-53))) ((cos-57 (cos-52 cos-53)) ((cos-208 cos-183) (cos-54 cos-53))) ((cos-208 cos-183) (cos-54 cos-53))) cos-53)))) 1) ok Expression: (17 209 (74 ((210 (27 0))) (26 (37) (74 ((211 (29 (210)))) (126 (28 (210) (5 (211) 1)) (211)))))) Translation: (begin (define cos-209 ((lambda (cos-210) (lambda (cos-37) ((lambda (cos-211) ((lambda (cos-37) (cos-52 cos-37)) (((cos-51 2) cos-211) ((cos-set! cos-210) ((cos-+ cos-211) 1))))) (cos-get! cos-210)))) (cos-make-cell 0))) 1) ok Expression: (2 (209 198) 0) Translation: ((cos-= (cos-209 198)) 0) ok Expression: (2 (209 198) 1) Translation: ((cos-= (cos-209 198)) 1) ok Expression: (2 (209 198) 2) Translation: ((cos-= (cos-209 198)) 2) ok Expression: (8 (2 (209 198) (209 198))) Translation: (cos-not ((cos-= (cos-209 198)) (cos-209 198))) ok ; okay, here it comes. don't panic! ; I need to split this up into helpers, and simplify. ; It basically just writes code for classes like we saw in ; a previous section. Expression: (17 78 (25)) Translation: (begin (define cos-78 cos-translate) 1) ok Expression: (17 25 (74 ((79 (78))) (0 37 (18 (24 (37)) (79 (37)) (18 (2 (52 (37)) 212) (74 ((144 (56 (37) 1)) (213 (56 (37) 2)) (214 (54 (54 (54 (37)))))) (25 (70 17 (144) (70 26 (57 145 (213)) (70 74 (207 (70 215 (70 209 198)) (82 (54) (208 (0 37 (2 (61 (37)) 216)) (214)))) (70 74 (70 (70 150 (70 188 (70 26 (70 150 145) (204 (57 179 (204 (82 (0 37 (70 (70 2 (70 145) (61 (37))) (62 (37)))) (82 (54) (208 (0 37 (2 (61 (37)) 145)) (214)))) (82 (0 37 (70 (70 2 (70 145) (37)) (70 (37)))) (82 (62) (208 (0 37 (2 (61 (37)) 216)) (214)))))) (70 (70 (70 2 (70 145) 150) (70 150)) (70 (70 2 (70 145) (144)) (70 150 150)) (70 (70 2 (70 145) 217) (70 26 (70 37) 0)) (70 (70 2 (70 145) 198) 0) (70 (70 2 (70 145) 215) (70 215)) (70 (70 2 (70 145) 218) (70 26 (70 37) (70 2 (70 215) (70 37 215)))) (70 150 217 (70 145)))))))) (70 126 (70 150 (70 145)) (70 150)))))))) (79 (37))))))) Translation: (begin (define cos-translate ((lambda (cos-79) (lambda (cos-37) (if (tish (cos-number? cos-37)) (cos-79 cos-37) (if (tish ((cos-= (cos-52 cos-37)) 212)) ((lambda (cos-214) ((lambda (cos-213) ((lambda (cos-144) (cos-translate ((((cos-51 3) 17) cos-144) ((((cos-51 3) 26) ((cos-57 145) cos-213)) ((((cos-51 3) 74) ((cos-207 (((cos-51 2) 215) (((cos-51 2) 209) 198))) ((cos-82 cos-54) ((cos-208 (lambda (cos-37) ((cos-= (cos-61 cos-37)) 216))) cos-214)))) ((((cos-51 3) 74) ((cos-51 1) (((cos-51 2) 150) (((cos-51 2) 188) ((((cos-51 3) 26) (((cos-51 2) 150) 145)) ((cos-204 ((cos-57 179) ((cos-204 ((cos-82 (lambda (cos-37) (((cos-51 2) ((((cos-51 3) 2) ((cos-51 1) 145)) (cos-61 cos-37))) (cos-62 cos-37)))) ((cos-82 cos-54) ((cos-208 (lambda (cos-37) ((cos-= (cos-61 cos-37)) 145))) cos-214)))) ((cos-82 (lambda (cos-37) (((cos-51 2) ((((cos-51 3) 2) ((cos-51 1) 145)) cos-37)) ((cos-51 1) cos-37)))) ((cos-82 cos-62) ((cos-208 (lambda (cos-37) ((cos-= (cos-61 cos-37)) 216))) cos-214)))))) ((((((((cos-51 7) (((cos-51 2) ((((cos-51 3) 2) ((cos-51 1) 145)) 150)) ((cos-51 1) 150))) (((cos-51 2) ((((cos-51 3) 2) ((cos-51 1) 145)) cos-144)) (((cos-51 2) 150) 150))) (((cos-51 2) ((((cos-51 3) 2) ((cos-51 1) 145)) 217)) ((((cos-51 3) 26) ((cos-51 1) 37)) 0))) (((cos-51 2) ((((cos-51 3) 2) ((cos-51 1) 145)) 198)) 0)) (((cos-51 2) ((((cos-51 3) 2) ((cos-51 1) 145)) 215)) ((cos-51 1) 215))) (((cos-51 2) ((((cos-51 3) 2) ((cos-51 1) 145)) 218)) ((((cos-51 3) 26) ((cos-51 1) 37)) ((((cos-51 3) 2) ((cos-51 1) 215)) (((cos-51 2) 37) 215))))) ((((cos-51 3) 150) 217) ((cos-51 1) 145))))))))) ((((cos-51 3) 126) (((cos-51 2) 150) ((cos-51 1) 145))) ((cos-51 1) 150)))))))) ((cos-56 cos-37) 1))) ((cos-56 cos-37) 2))) (cos-54 (cos-54 (cos-54 cos-37)))) (cos-79 cos-37))))) cos-78)) 1) ok ; revisit the point class example Expression: (212 189 (37 36) (145 37 (37)) (145 36 (36)) (145 5 (26 ((83 189)) (189 198 (5 (37) (83 37)) (5 (36) (83 36))))) (145 2 (26 ((83 189)) (13 (2 (37) (83 37)) (2 (36) (83 36)))))) Translation: (begin (define cos-189 (lambda (cos-145) (lambda (cos-37) (lambda (cos-36) ((lambda (cos-215) ((lambda (cos-150) ((lambda (cos-37) (cos-52 cos-37)) (((cos-51 2) cos-150) (cos-150 cos-145)))) (cos-188 (lambda (cos-150) (lambda (cos-145) (if (tish ((cos-= cos-145) 37)) cos-37 (if (tish ((cos-= cos-145) 36)) cos-36 (if (tish ((cos-= cos-145) 5)) (lambda (cos-83) ((lambda (cos-83) (((cos-189 198) ((cos-+ cos-37) (cos-83 37))) ((cos-+ cos-36) (cos-83 36)))) ((cos-173 cos-83) 189))) (if (tish ((cos-= cos-145) 2)) (lambda (cos-83) ((lambda (cos-83) ((cos-and ((cos-= cos-37) (cos-83 37))) ((cos-= cos-36) (cos-83 36)))) ((cos-173 cos-83) 189))) (if (tish ((cos-= cos-145) 150)) cos-150 (if (tish ((cos-= cos-145) 189)) (cos-150 150) (if (tish ((cos-= cos-145) 217)) (lambda (cos-37) 0) (if (tish ((cos-= cos-145) 198)) 0 (if (tish ((cos-= cos-145) 215)) cos-215 (if (tish ((cos-= cos-145) 218)) (lambda (cos-37) ((cos-= cos-215) (cos-37 215))) ((cos-150 217) cos-145)))))))))))))))) (cos-209 198)))))) 1) ok ; note the appearance of new in the next line -- ; this is the only difference to previous version Expression: (17 191 (189 198 1 11)) Translation: (begin (define cos-191 (((cos-189 198) 1) 11)) 1) ok Expression: (17 192 (189 198 2 22)) Translation: (begin (define cos-192 (((cos-189 198) 2) 22)) 1) ok Expression: (2 1 (191 37)) Translation: ((cos-= 1) (cos-191 37)) ok Expression: (2 22 (192 36)) Translation: ((cos-= 22) (cos-192 36)) ok Expression: (2 11 ((189 198 11 12) 37)) Translation: ((cos-= 11) ((((cos-189 198) 11) 12) 37)) ok Expression: (2 11 (((189 198 11 12) 189) 37)) Translation: ((cos-= 11) (((((cos-189 198) 11) 12) 189) 37)) ok Expression: (2 16 (((189 198 16 17) 189) 37)) Translation: ((cos-= 16) (((((cos-189 198) 16) 17) 189) 37)) ok Expression: (2 33 (191 5 (192) 36)) Translation: ((cos-= 33) (((cos-191 5) cos-192) 36)) ok Expression: (191 5 (192) 2 (189 198 3 33)) Translation: ((((cos-191 5) cos-192) 2) (((cos-189 198) 3) 33)) ok Expression: (192 5 (191) 2 (189 198 3 33)) Translation: ((((cos-192 5) cos-191) 2) (((cos-189 198) 3) 33)) ok Expression: ((189 198 100 200) 5 (189 198 200 100) 2 (189 198 300 300)) Translation: (((((((cos-189 198) 100) 200) 5) (((cos-189 198) 200) 100)) 2) (((cos-189 198) 300) 300)) ok Expression: (174 189 (191)) Translation: ((cos-174 189) cos-191) ok Expression: (8 (174 172 (191))) Translation: (cos-not ((cos-174 172) cos-191)) ok ; OBJECT wrapper class for cells Expression: (212 219 (220) (216 221 (27 (220))) (145 222 (29 (221))) (145 223 (26 (224) (28 (221) (224)))) (145 225 (150 223 (220))) (145 217 (26 (37) ((173 (150 222)) (37))))) Translation: (begin (define cos-219 (lambda (cos-145) (lambda (cos-220) ((lambda (cos-215) ((lambda (cos-221) ((lambda (cos-150) ((lambda (cos-37) (cos-52 cos-37)) (((cos-51 2) cos-150) (cos-150 cos-145)))) (cos-188 (lambda (cos-150) (lambda (cos-145) (if (tish ((cos-= cos-145) 222)) (cos-get! cos-221) (if (tish ((cos-= cos-145) 223)) (lambda (cos-224) ((cos-set! cos-221) cos-224)) (if (tish ((cos-= cos-145) 225)) ((cos-150 223) cos-220) (if (tish ((cos-= cos-145) 217)) (lambda (cos-37) ((cos-173 (cos-150 222)) cos-37)) (if (tish ((cos-= cos-145) 221)) cos-221 (if (tish ((cos-= cos-145) 150)) cos-150 (if (tish ((cos-= cos-145) 219)) (cos-150 150) (if (tish ((cos-= cos-145) 217)) (lambda (cos-37) 0) (if (tish ((cos-= cos-145) 198)) 0 (if (tish ((cos-= cos-145) 215)) cos-215 (if (tish ((cos-= cos-145) 218)) (lambda (cos-37) ((cos-= cos-215) (cos-37 215))) ((cos-150 217) cos-145))))))))))))))))) (cos-make-cell cos-220))) (cos-209 198))))) 1) ok Expression: (17 226 (219 198 15)) Translation: (begin (define cos-226 ((cos-219 198) 15)) 1) ok Expression: (2 15 (226 222)) Translation: ((cos-= 15) (cos-226 222)) ok Expression: (226 223 82) Translation: ((cos-226 223) 82) ok Expression: (2 82 (226 222)) Translation: ((cos-= 82) (cos-226 222)) ok Expression: (17 227 (219 198 (189 198 120 150))) Translation: (begin (define cos-227 ((cos-219 198) (((cos-189 198) 120) 150))) 1) ok Expression: (17 228 (219 198 (189 198 300 300))) Translation: (begin (define cos-228 ((cos-219 198) (((cos-189 198) 300) 300))) 1) ok Expression: (227 5 (228) 2 (189 198 420 450)) Translation: ((((cos-227 5) cos-228) 2) (((cos-189 198) 420) 450)) ok Expression: (8 (227 2 (228))) Translation: (cos-not ((cos-227 2) cos-228)) ok Expression: (228 223 (227)) Translation: ((cos-228 223) cos-227) ok Expression: (227 2 (228)) Translation: ((cos-227 2) cos-228) ok ; MUD playing around with doors and rooms Expression: (212 229 ((230 231) (232 231)) (145 198 (126 (230 98 (150)) (232 98 (150)))) (145 233 (26 ((160 231)) (179 ((160 218 (230)) (232)) ((160 218 (232)) (230)) 0))) (145 234 (26 ((160 231)) (179 ((160 218 (230)) (16)) ((160 218 (232)) (16)) (15))))) Translation: (begin (define cos-229 (lambda (cos-145) (lambda (cos-230) ((lambda (cos-230) (lambda (cos-232) ((lambda (cos-232) ((lambda (cos-215) ((lambda (cos-150) ((lambda (cos-37) (cos-52 cos-37)) (((cos-51 2) cos-150) (cos-150 cos-145)))) (cos-188 (lambda (cos-150) (lambda (cos-145) (if (tish ((cos-= cos-145) 198)) ((lambda (cos-37) (cos-52 cos-37)) (((cos-51 2) ((cos-232 98) cos-150)) ((cos-230 98) cos-150))) (if (tish ((cos-= cos-145) 233)) (lambda (cos-160) ((lambda (cos-160) (if (tish ((cos-160 218) cos-230)) cos-232 (if (tish ((cos-160 218) cos-232)) cos-230 0))) ((cos-173 cos-160) 231))) (if (tish ((cos-= cos-145) 234)) (lambda (cos-160) ((lambda (cos-160) (if (tish ((cos-160 218) cos-230)) cos-true (if (tish ((cos-160 218) cos-232)) cos-true cos-false))) ((cos-173 cos-160) 231))) (if (tish ((cos-= cos-145) 150)) cos-150 (if (tish ((cos-= cos-145) 229)) (cos-150 150) (if (tish ((cos-= cos-145) 217)) (lambda (cos-37) 0) (if (tish ((cos-= cos-145) 198)) 0 (if (tish ((cos-= cos-145) 215)) cos-215 (if (tish ((cos-= cos-145) 218)) (lambda (cos-37) ((cos-= cos-215) (cos-37 215))) ((cos-150 217) cos-145))))))))))))))) (cos-209 198))) ((cos-173 cos-232) 231)))) ((cos-173 cos-230) 231))))) 1) ok Expression: (212 231 () (216 221 (193 198)) (145 217 (26 (37) (221 (37))))) Translation: (begin (define cos-231 (lambda (cos-145) ((lambda (cos-215) ((lambda (cos-221) ((lambda (cos-150) ((lambda (cos-37) (cos-52 cos-37)) (((cos-51 2) cos-150) (cos-150 cos-145)))) (cos-188 (lambda (cos-150) (lambda (cos-145) (if (tish ((cos-= cos-145) 217)) (lambda (cos-37) (cos-221 cos-37)) (if (tish ((cos-= cos-145) 221)) cos-221 (if (tish ((cos-= cos-145) 150)) cos-150 (if (tish ((cos-= cos-145) 231)) (cos-150 150) (if (tish ((cos-= cos-145) 217)) (lambda (cos-37) 0) (if (tish ((cos-= cos-145) 198)) 0 (if (tish ((cos-= cos-145) 215)) cos-215 (if (tish ((cos-= cos-145) 218)) (lambda (cos-37) ((cos-= cos-215) (cos-37 215))) ((cos-150 217) cos-145)))))))))))))) (cos-193 198))) (cos-209 198)))) 1) ok ; need to fix up containers to use object equality Expression: (17 235 (26 (46 53) (3 (55 (208 (26 (37) (37 218 (46))) (53))) 0))) Translation: (begin (define cos-235 (lambda (cos-46) (lambda (cos-53) ((cos-> (cos-55 ((cos-208 (lambda (cos-37) ((cos-37 218) cos-46))) cos-53))) 0)))) 1) ok Expression: (212 193 () (216 194 (219 198 (70))) (145 195 (194 222)) (145 98 (26 (37) (18 (8 (235 (37) (194 222))) (194 223 (57 (37) (194 222))) (15))))) Translation: (begin (define cos-193 (lambda (cos-145) ((lambda (cos-215) ((lambda (cos-194) ((lambda (cos-150) ((lambda (cos-37) (cos-52 cos-37)) (((cos-51 2) cos-150) (cos-150 cos-145)))) (cos-188 (lambda (cos-150) (lambda (cos-145) (if (tish ((cos-= cos-145) 195)) (cos-194 222) (if (tish ((cos-= cos-145) 98)) (lambda (cos-37) (if (tish (cos-not ((cos-235 cos-37) (cos-194 222)))) ((cos-194 223) ((cos-57 cos-37) (cos-194 222))) cos-false)) (if (tish ((cos-= cos-145) 194)) cos-194 (if (tish ((cos-= cos-145) 150)) cos-150 (if (tish ((cos-= cos-145) 193)) (cos-150 150) (if (tish ((cos-= cos-145) 217)) (lambda (cos-37) 0) (if (tish ((cos-= cos-145) 198)) 0 (if (tish ((cos-= cos-145) 215)) cos-215 (if (tish ((cos-= cos-145) 218)) (lambda (cos-37) ((cos-= cos-215) (cos-37 215))) ((cos-150 217) cos-145))))))))))))))) ((cos-219 198) (cos-51 0)))) (cos-209 198)))) 1) ok Expression: (17 236 (231 198)) Translation: (begin (define cos-236 (cos-231 198)) 1) ok Expression: (17 237 (231 198)) Translation: (begin (define cos-237 (cos-231 198)) 1) ok Expression: (17 238 (229 198 (236) (237))) Translation: (begin (define cos-238 (((cos-229 198) cos-236) cos-237)) 1) ok Expression: ((61 (236 195)) 218 (238)) Translation: (((cos-61 (cos-236 195)) 218) cos-238) ok Expression: ((61 (237 195)) 218 (238)) Translation: (((cos-61 (cos-237 195)) 218) cos-238) ok Expression: (238 233 (236) 218 (237)) Translation: ((((cos-238 233) cos-236) 218) cos-237) ok Expression: (8 (238 233 (236) 218 (236))) Translation: (cos-not ((((cos-238 233) cos-236) 218) cos-236)) ok Expression: (238 233 (237) 218 (236)) Translation: ((((cos-238 233) cos-237) 218) cos-236) ok Expression: (17 239 (231 198)) Translation: (begin (define cos-239 (cos-231 198)) 1) ok Expression: (17 240 (231 198)) Translation: (begin (define cos-240 (cos-231 198)) 1) ok Expression: (17 241 (231 198)) Translation: (begin (define cos-241 (cos-231 198)) 1) ok Expression: (17 242 (231 198)) Translation: (begin (define cos-242 (cos-231 198)) 1) ok Expression: (17 243 (229 198 (236) (239))) Translation: (begin (define cos-243 (((cos-229 198) cos-236) cos-239)) 1) ok Expression: (17 244 (229 198 (236) (240))) Translation: (begin (define cos-244 (((cos-229 198) cos-236) cos-240)) 1) ok Expression: (17 245 (229 198 (240) (241))) Translation: (begin (define cos-245 (((cos-229 198) cos-240) cos-241)) 1) ok Expression: (212 246 () (216 247 (219 198 (242))) (145 248 (26 ((249 231)) (247 223 (249)))) (145 250 (247 222)) (145 251 0)) Translation: (begin (define cos-246 (lambda (cos-145) ((lambda (cos-215) ((lambda (cos-247) ((lambda (cos-150) ((lambda (cos-37) (cos-52 cos-37)) (((cos-51 2) cos-150) (cos-150 cos-145)))) (cos-188 (lambda (cos-150) (lambda (cos-145) (if (tish ((cos-= cos-145) 248)) (lambda (cos-249) ((lambda (cos-249) ((cos-247 223) cos-249)) ((cos-173 cos-249) 231))) (if (tish ((cos-= cos-145) 250)) (cos-247 222) (if (tish ((cos-= cos-145) 251)) 0 (if (tish ((cos-= cos-145) 247)) cos-247 (if (tish ((cos-= cos-145) 150)) cos-150 (if (tish ((cos-= cos-145) 246)) (cos-150 150) (if (tish ((cos-= cos-145) 217)) (lambda (cos-37) 0) (if (tish ((cos-= cos-145) 198)) 0 (if (tish ((cos-= cos-145) 215)) cos-215 (if (tish ((cos-= cos-145) 218)) (lambda (cos-37) ((cos-= cos-215) (cos-37 215))) ((cos-150 217) cos-145)))))))))))))))) ((cos-219 198) cos-242))) (cos-209 198)))) 1) ok Expression: (17 252 (26 (183 43 66 46 53) (18 (3 (55 (53)) 0) (18 (3 (183 (52 (53))) (43)) (252 (183) (183 (52 (53))) (46) (5 (46) 1) (54 (53))) (252 (183) (43) (66) (5 (46) 1) (54 (53)))) (66)))) Translation: (begin (define cos-252 (lambda (cos-183) (lambda (cos-43) (lambda (cos-66) (lambda (cos-46) (lambda (cos-53) (if (tish ((cos-> (cos-55 cos-53)) 0)) (if (tish ((cos-> (cos-183 (cos-52 cos-53))) cos-43)) (((((cos-252 cos-183) (cos-183 (cos-52 cos-53))) cos-46) ((cos-+ cos-46) 1)) (cos-54 cos-53)) (((((cos-252 cos-183) cos-43) cos-66) ((cos-+ cos-46) 1)) (cos-54 cos-53))) cos-66))))))) 1) ok Expression: (17 253 (26 (183 53) (252 (183) (183 (52 (53))) 0 0 (53)))) Translation: (begin (define cos-253 (lambda (cos-183) (lambda (cos-53) (((((cos-252 cos-183) (cos-183 (cos-52 cos-53))) 0) 0) cos-53)))) 1) ok Expression: (17 254 (26 (183 43 66 46 53) (18 (3 (55 (53)) 0) (18 (4 (183 (52 (53))) (43)) (254 (183) (183 (52 (53))) (46) (5 (46) 1) (54 (53))) (254 (183) (43) (66) (5 (46) 1) (54 (53)))) (66)))) Translation: (begin (define cos-254 (lambda (cos-183) (lambda (cos-43) (lambda (cos-66) (lambda (cos-46) (lambda (cos-53) (if (tish ((cos-> (cos-55 cos-53)) 0)) (if (tish ((cos-< (cos-183 (cos-52 cos-53))) cos-43)) (((((cos-254 cos-183) (cos-183 (cos-52 cos-53))) cos-46) ((cos-+ cos-46) 1)) (cos-54 cos-53)) (((((cos-254 cos-183) cos-43) cos-66) ((cos-+ cos-46) 1)) (cos-54 cos-53))) cos-66))))))) 1) ok Expression: (17 255 (26 (183 53) (254 (183) (183 (52 (53))) 0 0 (53)))) Translation: (begin (define cos-255 (lambda (cos-183) (lambda (cos-53) (((((cos-254 cos-183) (cos-183 (cos-52 cos-53))) 0) 0) cos-53)))) 1) ok Expression: (2 2 (253 (26 (37) (37)) (70 3 4 5 0))) Translation: ((cos-= 2) ((cos-253 (lambda (cos-37) cos-37)) (((((cos-51 4) 3) 4) 5) 0))) ok Expression: (2 1 (253 (26 (37) (37)) (70 3 5 4 0))) Translation: ((cos-= 1) ((cos-253 (lambda (cos-37) cos-37)) (((((cos-51 4) 3) 5) 4) 0))) ok Expression: (2 0 (253 (26 (37) (37)) (70 5 3 4 0))) Translation: ((cos-= 0) ((cos-253 (lambda (cos-37) cos-37)) (((((cos-51 4) 5) 3) 4) 0))) ok ; the robo class makes a character that patrols from room to room Expression: (212 256 () (216 201 (246 198)) (216 257 (219 198 0)) (216 258 (219 198 (26 (37) 0))) (145 217 (26 (37) (201 (37)))) (145 251 (74 ((259 (208 (26 (37) (174 229 (37))) (150 247 195)))) (74 ((260 (82 (26 (37) (258 222 (37))) (259)))) (74 ((261 (56 (259) (255 (26 (37) (37)) (260)))) (262 (258 222)) (263 (257 222))) (126 (150 247 223 (261 233 (150 247 222))) (258 223 (26 ((264 229)) (18 (264 218 (261)) (263) (262 (264))))) (257 223 (5 (257 222) 1)))))))) Translation: (begin (define cos-256 (lambda (cos-145) ((lambda (cos-215) ((lambda (cos-258) ((lambda (cos-257) ((lambda (cos-201) ((lambda (cos-150) ((lambda (cos-37) (cos-52 cos-37)) (((cos-51 2) cos-150) (cos-150 cos-145)))) (cos-188 (lambda (cos-150) (lambda (cos-145) (if (tish ((cos-= cos-145) 217)) (lambda (cos-37) (cos-201 cos-37)) (if (tish ((cos-= cos-145) 251)) ((lambda (cos-259) ((lambda (cos-260) ((lambda (cos-263) ((lambda (cos-262) ((lambda (cos-261) ((lambda (cos-37) (cos-52 cos-37)) ((((cos-51 3) ((cos-257 223) ((cos-+ (cos-257 222)) 1))) ((cos-258 223) (lambda (cos-264) ((lambda (cos-264) (if (tish ((cos-264 218) cos-261)) cos-263 (cos-262 cos-264))) ((cos-173 cos-264) 229))))) (((cos-150 247) 223) ((cos-261 233) ((cos-150 247) 222)))))) ((cos-56 cos-259) ((cos-255 (lambda (cos-37) cos-37)) cos-260)))) (cos-258 222))) (cos-257 222))) ((cos-82 (lambda (cos-37) ((cos-258 222) cos-37))) cos-259))) ((cos-208 (lambda (cos-37) ((cos-174 229) cos-37))) ((cos-150 247) 195))) (if (tish ((cos-= cos-145) 201)) cos-201 (if (tish ((cos-= cos-145) 257)) cos-257 (if (tish ((cos-= cos-145) 258)) cos-258 (if (tish ((cos-= cos-145) 150)) cos-150 (if (tish ((cos-= cos-145) 256)) (cos-150 150) (if (tish ((cos-= cos-145) 217)) (lambda (cos-37) 0) (if (tish ((cos-= cos-145) 198)) 0 (if (tish ((cos-= cos-145) 215)) cos-215 (if (tish ((cos-= cos-145) 218)) (lambda (cos-37) ((cos-= cos-215) (cos-37 215))) ((cos-150 217) cos-145))))))))))))))))) (cos-246 198))) ((cos-219 198) 0))) ((cos-219 198) (lambda (cos-37) 0)))) (cos-209 198)))) 1) ok Expression: (17 265 (256 198)) Translation: (begin (define cos-265 (cos-256 198)) 1) ok Expression: (265 248 (240)) Translation: ((cos-265 248) cos-240) ok Expression: (17 266 (26 ((267 256)) (253 (26 ((249 231)) (18 (249 218 (267 250)) 1 0)) (70 (236) (237) (240) (239) (241))))) Translation: (begin (define cos-266 (lambda (cos-267) ((lambda (cos-267) ((cos-253 (lambda (cos-249) ((lambda (cos-249) (if (tish ((cos-249 218) (cos-267 250))) 1 0)) ((cos-173 cos-249) 231)))) ((((((cos-51 5) cos-236) cos-237) cos-240) cos-239) cos-241))) ((cos-173 cos-267) 256)))) 1) ok Expression: (17 268 (26 (46 160 53) (18 (4 (160) (46)) (126 (265 251) (268 (46) (5 (160) 1) (207 (266 (265)) (53)))) (53)))) Translation: (begin (define cos-268 (lambda (cos-46) (lambda (cos-160) (lambda (cos-53) (if (tish ((cos-< cos-160) cos-46)) ((lambda (cos-37) (cos-52 cos-37)) (((cos-51 2) (((cos-268 cos-46) ((cos-+ cos-160) 1)) ((cos-207 (cos-266 cos-265)) cos-53))) (cos-265 251))) cos-53))))) 1) ok ; here is a list of the first 30 rooms the robot character visits ; 0=hall, 1=kitchen, 2=stairs, 3=lawn, 4=bedroom Expression: (59 (268 30 0 (70)) (70 4 2 0 3 0 1 0 2 4 2 0 3 0 1 0 2 4 2 0 3 0 1 0 2 4 2 0 3 0 1)) Translation: ((cos-59 (((cos-268 30) 0) (cos-51 0))) (((((((((((((((((((((((((((((((cos-51 30) 4) 2) 0) 3) 0) 1) 0) 2) 4) 2) 0) 3) 0) 1) 0) 2) 4) 2) 0) 3) 0) 1) 0) 2) 4) 2) 0) 3) 0) 1)) ok ; Now should start to introduce a language to talk about what is ; going on in the simulated world, and start to move away from ; detailed mechanism ; JAVA some preparatory work for integrating with Java code Expression: (212 269 () (145 270 (26 (37) (5 (37) 1))) (145 271 (16))) Translation: (begin (define cos-269 (lambda (cos-145) ((lambda (cos-215) ((lambda (cos-150) ((lambda (cos-37) (cos-52 cos-37)) (((cos-51 2) cos-150) (cos-150 cos-145)))) (cos-188 (lambda (cos-150) (lambda (cos-145) (if (tish ((cos-= cos-145) 270)) (lambda (cos-37) ((cos-+ cos-37) 1)) (if (tish ((cos-= cos-145) 271)) cos-true (if (tish ((cos-= cos-145) 150)) cos-150 (if (tish ((cos-= cos-145) 269)) (cos-150 150) (if (tish ((cos-= cos-145) 217)) (lambda (cos-37) 0) (if (tish ((cos-= cos-145) 198)) 0 (if (tish ((cos-= cos-145) 215)) cos-215 (if (tish ((cos-= cos-145) 218)) (lambda (cos-37) ((cos-= cos-215) (cos-37 215))) ((cos-150 217) cos-145)))))))))))))) (cos-209 198)))) 1) ok Expression: (212 272 () (216 201 (269 198)) (145 217 (26 (37) (201 (37))))) Translation: (begin (define cos-272 (lambda (cos-145) ((lambda (cos-215) ((lambda (cos-201) ((lambda (cos-150) ((lambda (cos-37) (cos-52 cos-37)) (((cos-51 2) cos-150) (cos-150 cos-145)))) (cos-188 (lambda (cos-150) (lambda (cos-145) (if (tish ((cos-= cos-145) 217)) (lambda (cos-37) (cos-201 cos-37)) (if (tish ((cos-= cos-145) 201)) cos-201 (if (tish ((cos-= cos-145) 150)) cos-150 (if (tish ((cos-= cos-145) 272)) (cos-150 150) (if (tish ((cos-= cos-145) 217)) (lambda (cos-37) 0) (if (tish ((cos-= cos-145) 198)) 0 (if (tish ((cos-= cos-145) 215)) cos-215 (if (tish ((cos-= cos-145) 218)) (lambda (cos-37) ((cos-= cos-215) (cos-37 215))) ((cos-150 217) cos-145)))))))))))))) (cos-269 198))) (cos-209 198)))) 1) ok ; will need to install class hierarchy, just hardcode a few things for now Expression: (17 273 (0 37 -1 0 36 -1 (179 ((2 (36) 274) (272)) ((2 (36) 275) (269)) (269)))) Translation: (begin (define cos-273 (lambda (cos-37) (lambda (cos-36) (if (tish ((cos-= cos-36) 274)) cos-272 (if (tish ((cos-= cos-36) 275)) cos-269 cos-269))))) 1) ok Expression: ((273 276 274) 198 271) Translation: ((((cos-273 276) 274) 198) 271) ok Expression: (2 ((273 276 274) 198 270 15) 16) Translation: ((cos-= (((((cos-273 276) 274) 198) 270) 15)) 16) ok Expression: (212 277 () (216 201 (269 198)) (145 217 (26 (37) (201 (37)))) (216 278 (219 198 0)) (145 222 (278 222)) (145 279 (26 (171) (126 (150 223 (171)) (150)))) (145 223 (26 (171) (278 223 (171))))) Translation: (begin (define cos-277 (lambda (cos-145) ((lambda (cos-215) ((lambda (cos-278) ((lambda (cos-201) ((lambda (cos-150) ((lambda (cos-37) (cos-52 cos-37)) (((cos-51 2) cos-150) (cos-150 cos-145)))) (cos-188 (lambda (cos-150) (lambda (cos-145) (if (tish ((cos-= cos-145) 217)) (lambda (cos-37) (cos-201 cos-37)) (if (tish ((cos-= cos-145) 222)) (cos-278 222) (if (tish ((cos-= cos-145) 279)) (lambda (cos-171) ((lambda (cos-37) (cos-52 cos-37)) (((cos-51 2) cos-150) ((cos-150 223) cos-171)))) (if (tish ((cos-= cos-145) 223)) (lambda (cos-171) ((cos-278 223) cos-171)) (if (tish ((cos-= cos-145) 201)) cos-201 (if (tish ((cos-= cos-145) 278)) cos-278 (if (tish ((cos-= cos-145) 150)) cos-150 (if (tish ((cos-= cos-145) 277)) (cos-150 150) (if (tish ((cos-= cos-145) 217)) (lambda (cos-37) 0) (if (tish ((cos-= cos-145) 198)) 0 (if (tish ((cos-= cos-145) 215)) cos-215 (if (tish ((cos-= cos-145) 218)) (lambda (cos-37) ((cos-= cos-215) (cos-37 215))) ((cos-150 217) cos-145)))))))))))))))))) (cos-269 198))) ((cos-219 198) 0))) (cos-209 198)))) 1) ok Expression: (17 280 (277)) Translation: (begin (define cos-280 cos-277) 1) ok Expression: (17 281 (277)) Translation: (begin (define cos-281 cos-277) 1) ok Expression: (17 282 (277)) Translation: (begin (define cos-282 cos-277) 1) ok Expression: (17 283 (277)) Translation: (begin (define cos-283 cos-277) 1) ok Expression: (17 172 (277)) Translation: (begin (define cos-172 cos-277) 1) ok Expression: (17 284 (277)) Translation: (begin (define cos-284 cos-277) 1) ok Expression: (17 285 (277)) Translation: (begin (define cos-285 cos-277) 1) ok Expression: (17 286 (277)) Translation: (begin (define cos-286 cos-277) 1) ok Expression: (17 287 (277)) Translation: (begin (define cos-287 cos-277) 1) ok Expression: (17 288 (172 198)) Translation: (begin (define cos-288 (cos-172 198)) 1) ok Expression: (288 223 15) Translation: ((cos-288 223) 15) ok Expression: (2 15 (288 222)) Translation: ((cos-= 15) (cos-288 222)) ok Expression: (17 289 (172 198 279 17)) Translation: (begin (define cos-289 (((cos-172 198) 279) 17)) 1) ok Expression: (2 17 (289 222)) Translation: ((cos-= 17) (cos-289 222)) ok Expression: (17 290 (0 37 (179 ((2 (37) 1) 20) ((2 (37) 2) 40) ((2 (37) 3) 60) 0))) Translation: (begin (define cos-290 (lambda (cos-37) (if (tish ((cos-= cos-37) 1)) 20 (if (tish ((cos-= cos-37) 2)) 40 (if (tish ((cos-= cos-37) 3)) 60 0))))) 1) ok Expression: (2 (290 3) 60) Translation: ((cos-= (cos-290 3)) 60) ok ; really ought to go back and be clear about eager/laziness issues Expression: (17 291 (0 37 (179 ((2 (37) 1) (288 223 20)) ((2 (37) 2) (288 223 40)) ((2 (37) 3) (288 223 60)) 0))) Translation: (begin (define cos-291 (lambda (cos-37) (if (tish ((cos-= cos-37) 1)) ((cos-288 223) 20) (if (tish ((cos-= cos-37) 2)) ((cos-288 223) 40) (if (tish ((cos-= cos-37) 3)) ((cos-288 223) 60) 0))))) 1) ok Expression: (291 2) Translation: (cos-291 2) ok Expression: (2 (288 222) 40) Translation: ((cos-= (cos-288 222)) 40) ok Expression: (17 292 (26 (293 294 295 50) (0 296 (126 (295 223 (5 (295 222) 1)) -1 179 ((2 (296) 198) (26 (297) (298 (294) ((297) 198)))) ((2 (296) 299) (298 (294) (300 (294)))) ((14 (2 (296) 301) (2 (296) 302)) (26 (303) (293 223 (128 (293 222) (303) (304 (294)))))) ((14 (2 (296) 305) (2 (296) 306)) (26 (303) (298 (294) (130 (293 222) (303))))) ((2 (296) 307) (26 (308) (298 (294) (308)))) ((2 (296) 309) (26 (64 310) (298 (294) ((304 (294)) (64) 222)))) ((2 (296) 311) (26 (64 310) (74 ((308 (304 (294)))) ((304 (294)) (64) 223 (308))))) ((2 (296) 312) (74 ((313 (304 (294)))) (74 ((314 (304 (294)))) (298 (294) (6 (314) (313)))))) ((2 (296) 315) (74 ((313 (304 (294)))) (74 ((314 (304 (294)))) (298 (294) (5 (314) (313)))))) ((2 (296) 316) (74 ((313 (304 (294)))) (74 ((314 (304 (294)))) (298 (294) (7 (314) (313)))))) ((2 (296) 317) (26 (37) (295 223 (37)))) ((2 (296) 318) (26 (37) (18 (4 (304 (294)) 0) (295 223 (37)) 0))) ((2 (296) 319) (26 (37) (18 (4 (304 (294)) 1) (295 223 (37)) 0))) ((2 (296) 320) (26 (37) (18 (3 (304 (294)) 0) (295 223 (37)) 0))) ((2 (296) 321) (26 (37) (18 (10 (304 (294)) 0) (295 223 (37)) 0))) ((2 (296) 322) (26 (37) (18 (8 (2 (304 (294)) 0)) (295 223 (37)) 0))) ((2 (296) 185) (295 223 323)) ((2 (296) 324) (126 (50 223 (304 (294))) (295 223 323))) ((2 (296) 325) (126 (50 223 (304 (294))) (295 223 323))) ((2 (296) 317) (26 (326) (295 223 (326)))) ((2 (296) 327) (26 (326 328 46) (74 ((329 (330 (294) (326) (328)))) (18 (2 (46) 1) (298 (294) (329)) 0)))) 0)))) Translation: (begin (define cos-292 (lambda (cos-293) (lambda (cos-294) (lambda (cos-295) (lambda (cos-50) (lambda (cos-296) ((lambda (cos-37) (cos-52 cos-37)) (((cos-51 2) (if (tish ((cos-= cos-296) 198)) (lambda (cos-297) ((cos-298 cos-294) (cos-297 198))) (if (tish ((cos-= cos-296) 299)) ((cos-298 cos-294) (cos-300 cos-294)) (if (tish ((cos-or ((cos-= cos-296) 301)) ((cos-= cos-296) 302))) (lambda (cos-303) ((cos-293 223) (((cos-128 (cos-293 222)) cos-303) (cos-304 cos-294)))) (if (tish ((cos-or ((cos-= cos-296) 305)) ((cos-= cos-296) 306))) (lambda (cos-303) ((cos-298 cos-294) ((cos-130 (cos-293 222)) cos-303))) (if (tish ((cos-= cos-296) 307)) (lambda (cos-308) ((cos-298 cos-294) cos-308)) (if (tish ((cos-= cos-296) 309)) (lambda (cos-64) (lambda (cos-310) ((cos-298 cos-294) (((cos-304 cos-294) cos-64) 222)))) (if (tish ((cos-= cos-296) 311)) (lambda (cos-64) (lambda (cos-310) ((lambda (cos-308) ((((cos-304 cos-294) cos-64) 223) cos-308)) (cos-304 cos-294)))) (if (tish ((cos-= cos-296) 312)) ((lambda (cos-313) ((lambda (cos-314) ((cos-298 cos-294) ((cos-* cos-314) cos-313))) (cos-304 cos-294))) (cos-304 cos-294)) (if (tish ((cos-= cos-296) 315)) ((lambda (cos-313) ((lambda (cos-314) ((cos-298 cos-294) ((cos-+ cos-314) cos-313))) (cos-304 cos-294))) (cos-304 cos-294)) (if (tish ((cos-= cos-296) 316)) ((lambda (cos-313) ((lambda (cos-314) ((cos-298 cos-294) ((cos-- cos-314) cos-313))) (cos-304 cos-294))) (cos-304 cos-294)) (if (tish ((cos-= cos-296) 317)) (lambda (cos-37) ((cos-295 223) cos-37)) (if (tish ((cos-= cos-296) 318)) (lambda (cos-37) (if (tish ((cos-< (cos-304 cos-294)) 0)) ((cos-295 223) cos-37) 0)) (if (tish ((cos-= cos-296) 319)) (lambda (cos-37) (if (tish ((cos-< (cos-304 cos-294)) 1)) ((cos-295 223) cos-37) 0)) (if (tish ((cos-= cos-296) 320)) (lambda (cos-37) (if (tish ((cos-> (cos-304 cos-294)) 0)) ((cos-295 223) cos-37) 0)) (if (tish ((cos-= cos-296) 321)) (lambda (cos-37) (if (tish ((cos->= (cos-304 cos-294)) 0)) ((cos-295 223) cos-37) 0)) (if (tish ((cos-= cos-296) 322)) (lambda (cos-37) (if (tish (cos-not ((cos-= (cos-304 cos-294)) 0))) ((cos-295 223) cos-37) 0)) (if (tish ((cos-= cos-296) 185)) ((cos-295 223) 323) (if (tish ((cos-= cos-296) 324)) ((lambda (cos-37) (cos-52 cos-37)) (((cos-51 2) ((cos-295 223) 323)) ((cos-50 223) (cos-304 cos-294)))) (if (tish ((cos-= cos-296) 325)) ((lambda (cos-37) (cos-52 cos-37)) (((cos-51 2) ((cos-295 223) 323)) ((cos-50 223) (cos-304 cos-294)))) (if (tish ((cos-= cos-296) 317)) (lambda (cos-326) ((cos-295 223) cos-326)) (if (tish ((cos-= cos-296) 327)) (lambda (cos-326) (lambda (cos-328) (lambda (cos-46) ((lambda (cos-329) (if (tish ((cos-= cos-46) 1)) ((cos-298 cos-294) cos-329) 0)) (((cos-330 cos-294) cos-326) cos-328))))) 0)))))))))))))))))))))) ((cos-295 223) ((cos-+ (cos-295 222)) 1)))))))))) 1) ok Expression: (17 330 (26 (294 326 331) (18 (2 (331) 0) ((304 (294)) (326)) (74 ((332 (304 (294)))) ((330 (294) (326) (7 (331) 1)) (332)))))) Translation: (begin (define cos-330 (lambda (cos-294) (lambda (cos-326) (lambda (cos-331) (if (tish ((cos-= cos-331) 0)) ((cos-304 cos-294) cos-326) ((lambda (cos-332) ((((cos-330 cos-294) cos-326) ((cos-- cos-331) 1)) cos-332)) (cos-304 cos-294))))))) 1) ok Expression: (17 298 (26 (294 37) (294 223 (57 (37) (294 222))))) Translation: (begin (define cos-298 (lambda (cos-294) (lambda (cos-37) ((cos-294 223) ((cos-57 cos-37) (cos-294 222)))))) 1) ok Expression: (17 304 (26 (294) (74 ((171 (52 (294 222)))) (126 (294 223 (54 (294 222))) (171))))) Translation: (begin (define cos-304 (lambda (cos-294) ((lambda (cos-171) ((lambda (cos-37) (cos-52 cos-37)) (((cos-51 2) cos-171) ((cos-294 223) (cos-54 (cos-294 222)))))) (cos-52 (cos-294 222))))) 1) ok Expression: (17 300 (26 (294) (52 (294 222)))) Translation: (begin (define cos-300 (lambda (cos-294) (cos-52 (cos-294 222)))) 1) ok Expression: (17 333 (219 198 (70 5 3 1))) Translation: (begin (define cos-333 ((cos-219 198) ((((cos-51 3) 5) 3) 1))) 1) ok Expression: (2 (304 (333)) 5) Translation: ((cos-= (cos-304 cos-333)) 5) ok Expression: (2 (300 (333)) 3) Translation: ((cos-= (cos-300 cos-333)) 3) ok Expression: (2 (304 (333)) 3) Translation: ((cos-= (cos-304 cos-333)) 3) ok Expression: (298 (333) 7) Translation: ((cos-298 cos-333) 7) ok Expression: (2 (304 (333)) 7) Translation: ((cos-= (cos-304 cos-333)) 7) ok Expression: (17 334 (219 198 (131))) Translation: (begin (define cos-334 ((cos-219 198) cos-131)) 1) ok Expression: (17 335 (219 198 0)) Translation: (begin (define cos-335 ((cos-219 198) 0)) 1) ok Expression: (17 336 (219 198 0)) Translation: (begin (define cos-336 ((cos-219 198) 0)) 1) ok Expression: (17 337 (292 (334) (333) (335) (336))) Translation: (begin (define cos-337 ((((cos-292 cos-334) cos-333) cos-335) cos-336)) 1) ok Expression: (298 (333) 4) Translation: ((cos-298 cos-333) 4) ok Expression: (337 299) Translation: (cos-337 299) ok Expression: (2 (304 (333)) 4) Translation: ((cos-= (cos-304 cos-333)) 4) ok Expression: (2 (304 (333)) 4) Translation: ((cos-= (cos-304 cos-333)) 4) ok Expression: (298 (333) 66) Translation: ((cos-298 cos-333) 66) ok Expression: (298 (333) 77) Translation: ((cos-298 cos-333) 77) ok Expression: (337 301 3) Translation: ((cos-337 301) 3) ok Expression: (2 (304 (333)) 66) Translation: ((cos-= (cos-304 cos-333)) 66) ok Expression: (337 305 3) Translation: ((cos-337 305) 3) ok Expression: (2 (304 (333)) 77) Translation: ((cos-= (cos-304 cos-333)) 77) ok Expression: (212 338 () (216 37 ((172) 198)) (216 36 ((172) 198))) Translation: (begin (define cos-338 (lambda (cos-145) ((lambda (cos-215) ((lambda (cos-36) ((lambda (cos-37) ((lambda (cos-150) ((lambda (cos-37) (cos-52 cos-37)) (((cos-51 2) cos-150) (cos-150 cos-145)))) (cos-188 (lambda (cos-150) (lambda (cos-145) (if (tish ((cos-= cos-145) 37)) cos-37 (if (tish ((cos-= cos-145) 36)) cos-36 (if (tish ((cos-= cos-145) 150)) cos-150 (if (tish ((cos-= cos-145) 338)) (cos-150 150) (if (tish ((cos-= cos-145) 217)) (lambda (cos-37) 0) (if (tish ((cos-= cos-145) 198)) 0 (if (tish ((cos-= cos-145) 215)) cos-215 (if (tish ((cos-= cos-145) 218)) (lambda (cos-37) ((cos-= cos-215) (cos-37 215))) ((cos-150 217) cos-145)))))))))))))) (cos-172 198))) (cos-172 198))) (cos-209 198)))) 1) ok Expression: (17 339 (338 198)) Translation: (begin (define cos-339 (cos-338 198)) 1) ok Expression: (339 37 223 5) Translation: (((cos-339 37) 223) 5) ok Expression: (2 (339 37 222) 5) Translation: ((cos-= ((cos-339 37) 222)) 5) ok Expression: (298 (333) (339)) Translation: ((cos-298 cos-333) cos-339) ok Expression: (2 ((304 (333)) 37 222) 5) Translation: ((cos-= (((cos-304 cos-333) 37) 222)) 5) ok Expression: (298 (333) (339)) Translation: ((cos-298 cos-333) cos-339) ok Expression: (337 301 0) Translation: ((cos-337 301) 0) ok Expression: (337 305 0) Translation: ((cos-337 305) 0) ok Expression: (337 309 37 (172)) Translation: (((cos-337 309) 37) cos-172) ok Expression: (2 (304 (333)) 5) Translation: ((cos-= (cos-304 cos-333)) 5) ok Expression: (337 305 0) Translation: ((cos-337 305) 0) ok Expression: (337 307 15) Translation: ((cos-337 307) 15) ok Expression: (337 311 36 (172)) Translation: (((cos-337 311) 36) cos-172) ok Expression: (2 (339 36 222) 15) Translation: ((cos-= ((cos-339 36) 222)) 15) ok Expression: (298 (333) 7) Translation: ((cos-298 cos-333) 7) ok Expression: (298 (333) 10) Translation: ((cos-298 cos-333) 10) ok Expression: (337 312) Translation: (cos-337 312) ok Expression: (337 324) Translation: (cos-337 324) ok Expression: (2 (336 222) 70) Translation: ((cos-= (cos-336 222)) 70) ok Expression: (17 340 -1 0 341 -1 26 (293 294 159) -1 74 ((295 (219 198 (341))) (50 (219 198 (16)))) -1 74 ((342 (292 (293) (294) (295) (50)))) -1 (126 (159 (342) (295 222)) (18 (2 (295 222) 323) (50 222) (340 (295 222) (293) (294) (159))))) Translation: (begin (define cos-340 (lambda (cos-341) (lambda (cos-293) (lambda (cos-294) (lambda (cos-159) ((lambda (cos-50) ((lambda (cos-295) ((lambda (cos-342) ((lambda (cos-37) (cos-52 cos-37)) (((cos-51 2) (if (tish ((cos-= (cos-295 222)) 323)) (cos-50 222) ((((cos-340 (cos-295 222)) cos-293) cos-294) cos-159))) ((cos-159 cos-342) (cos-295 222))))) ((((cos-292 cos-293) cos-294) cos-295) cos-50))) ((cos-219 198) cos-341))) ((cos-219 198) cos-true))))))) 1) ok Expression: (17 343 (340 0)) Translation: (begin (define cos-343 (cos-340 0)) 1) ok Expression: (298 (333) 10) Translation: ((cos-298 cos-333) 10) ok Expression: (298 (333) 33) Translation: ((cos-298 cos-333) 33) ok Expression: (2 (343 (334) (333) -1 0 342 -1 0 37 -1 (179 ((2 (37) 0) (342 302 4)) ((2 (37) 1) (342 306 4)) (342 324))) 33) Translation: ((cos-= (((cos-343 cos-334) cos-333) (lambda (cos-342) (lambda (cos-37) (if (tish ((cos-= cos-37) 0)) ((cos-342 302) 4) (if (tish ((cos-= cos-37) 1)) ((cos-342 306) 4) (cos-342 324))))))) 33) ok Expression: (298 (333) 10) Translation: ((cos-298 cos-333) 10) ok Expression: (17 344 (26 (345 346) -1 74 ((293 -1 219 198 -1 135 -1 70 (60 0 0) (60 1 (345)) (60 2 (346))) (294 -1 219 198 -1 70)) -1 343 (293) (294) -1 0 342 -1 0 37 -1 179 ((2 (37) 0) (342 306 1)) ((2 (37) 1) (342 306 2)) ((2 (37) 2) (342 312)) ((2 (37) 3) (342 324)) (342 185))) Translation: (begin (define cos-344 (lambda (cos-345) (lambda (cos-346) ((lambda (cos-294) ((lambda (cos-293) (((cos-343 cos-293) cos-294) (lambda (cos-342) (lambda (cos-37) (if (tish ((cos-= cos-37) 0)) ((cos-342 306) 1) (if (tish ((cos-= cos-37) 1)) ((cos-342 306) 2) (if (tish ((cos-= cos-37) 2)) (cos-342 312) (if (tish ((cos-= cos-37) 3)) (cos-342 324) (cos-342 185))))))))) ((cos-219 198) (cos-135 ((((cos-51 3) ((cos-60 0) 0)) ((cos-60 1) cos-345)) ((cos-60 2) cos-346)))))) ((cos-219 198) (cos-51 0)))))) 1) ok Expression: (2 (344 5 9) 45) Translation: ((cos-= ((cos-344 5) 9)) 45) ok ; JAVA class translation 'COS_JavaTest' ; Sun Jan 23 22:17:30 EST 2005 ; Produced by Fritzifier, based on JasminVisitor ; Using BCEL library to read Java bytecode ; Here is the original code: ; public class COS_JavaTest { ; private int q = 0; ; public int add(int x, int y) { ; return x+y; ; } ; public int sub(int x, int y) { ; return x-y; ; } ; public int mult(int x, int y) { ; return x*y; ; } ; public int addmult(int x, int y, int z) { ; return add(x,mult(y,z)); ; } ; public void set(int x) { ; q = x; ; } ; public int get() { ; return q; ; } ; public int fact(int x) { ; return (x>0)?(x*fact(sub(x,1))):1; ; } ; } ; Expression: (212 347 () (216 201 ((273 348 275) 198)) (145 217 (26 (37) (201 (37)))) (216 349 ((172) 198)) (145 350 (26 () -1 74 ((293 -1 219 198 -1 135 -1 70 (60 0 (150))) (294 -1 219 198 -1 70)) -1 343 (293) (294) -1 0 342 -1 0 37 -1 179 ((2 (37) 0) (342 305 0)) ((2 (37) 1) (342 351 350 0 0)) ((2 (37) 2) (342 305 0)) ((2 (37) 3) (342 307 0)) ((2 (37) 4) (342 311 349 (172))) ((2 (37) 5) (342 185)) (342 185))) (145 98 (26 (345 346) -1 74 ((293 -1 219 198 -1 135 -1 70 (60 0 (150)) (60 1 (345)) (60 2 (346))) (294 -1 219 198 -1 70)) -1 343 (293) (294) -1 0 342 -1 0 37 -1 179 ((2 (37) 0) (342 306 1)) ((2 (37) 1) (342 306 2)) ((2 (37) 2) (342 315)) ((2 (37) 3) (342 324)) (342 185))) (145 352 (26 (345 346) -1 74 ((293 -1 219 198 -1 135 -1 70 (60 0 (150)) (60 1 (345)) (60 2 (346))) (294 -1 219 198 -1 70)) -1 343 (293) (294) -1 0 342 -1 0 37 -1 179 ((2 (37) 0) (342 306 1)) ((2 (37) 1) (342 306 2)) ((2 (37) 2) (342 316)) ((2 (37) 3) (342 324)) (342 185))) (145 101 (26 (345 346) -1 74 ((293 -1 219 198 -1 135 -1 70 (60 0 (150)) (60 1 (345)) (60 2 (346))) (294 -1 219 198 -1 70)) -1 343 (293) (294) -1 0 342 -1 0 37 -1 179 ((2 (37) 0) (342 306 1)) ((2 (37) 1) (342 306 2)) ((2 (37) 2) (342 312)) ((2 (37) 3) (342 324)) (342 185))) (145 353 (26 (345 346 354) -1 74 ((293 -1 219 198 -1 135 -1 70 (60 0 (150)) (60 1 (345)) (60 2 (346)) (60 3 (354))) (294 -1 219 198 -1 70)) -1 343 (293) (294) -1 0 342 -1 0 37 -1 179 ((2 (37) 0) (342 305 0)) ((2 (37) 1) (342 306 1)) ((2 (37) 2) (342 305 0)) ((2 (37) 3) (342 306 2)) ((2 (37) 4) (342 306 3)) ((2 (37) 5) (342 327 101 2 1)) ((2 (37) 6) (342 327 98 2 1)) ((2 (37) 7) (342 324)) (342 185))) (145 223 (26 (345) -1 74 ((293 -1 219 198 -1 135 -1 70 (60 0 (150)) (60 1 (345))) (294 -1 219 198 -1 70)) -1 343 (293) (294) -1 0 342 -1 0 37 -1 179 ((2 (37) 0) (342 305 0)) ((2 (37) 1) (342 306 1)) ((2 (37) 2) (342 311 349 (172))) ((2 (37) 3) (342 185)) (342 185))) (145 222 (26 () -1 74 ((293 -1 219 198 -1 135 -1 70 (60 0 (150))) (294 -1 219 198 -1 70)) -1 343 (293) (294) -1 0 342 -1 0 37 -1 179 ((2 (37) 0) (342 305 0)) ((2 (37) 1) (342 309 349 (172))) ((2 (37) 2) (342 324)) (342 185))) (145 355 (26 (345) -1 74 ((293 -1 219 198 -1 135 -1 70 (60 0 (150)) (60 1 (345))) (294 -1 219 198 -1 70)) -1 343 (293) (294) -1 0 342 -1 0 37 -1 179 ((2 (37) 0) (342 306 1)) ((2 (37) 1) (342 319 11)) ((2 (37) 2) (342 306 1)) ((2 (37) 3) (342 305 0)) ((2 (37) 4) (342 305 0)) ((2 (37) 5) (342 306 1)) ((2 (37) 6) (342 307 1)) ((2 (37) 7) (342 327 352 2 1)) ((2 (37) 8) (342 327 355 1 1)) ((2 (37) 9) (342 312)) ((2 (37) 10) (342 317 12)) ((2 (37) 11) (342 307 1)) ((2 (37) 12) (342 324)) (342 185)))) Translation: (begin (define cos-347 (lambda (cos-145) ((lambda (cos-215) ((lambda (cos-349) ((lambda (cos-201) ((lambda (cos-150) ((lambda (cos-37) (cos-52 cos-37)) (((cos-51 2) cos-150) (cos-150 cos-145)))) (cos-188 (lambda (cos-150) (lambda (cos-145) (if (tish ((cos-= cos-145) 217)) (lambda (cos-37) (cos-201 cos-37)) (if (tish ((cos-= cos-145) 350)) ((lambda (cos-294) ((lambda (cos-293) (((cos-343 cos-293) cos-294) (lambda (cos-342) (lambda (cos-37) (if (tish ((cos-= cos-37) 0)) ((cos-342 305) 0) (if (tish ((cos-= cos-37) 1)) ((((cos-342 351) 350) 0) 0) (if (tish ((cos-= cos-37) 2)) ((cos-342 305) 0) (if (tish ((cos-= cos-37) 3)) ((cos-342 307) 0) (if (tish ((cos-= cos-37) 4)) (((cos-342 311) 349) cos-172) (if (tish ((cos-= cos-37) 5)) (cos-342 185) (cos-342 185))))))))))) ((cos-219 198) (cos-135 ((cos-51 1) ((cos-60 0) cos-150)))))) ((cos-219 198) (cos-51 0))) (if (tish ((cos-= cos-145) 98)) (lambda (cos-345) (lambda (cos-346) ((lambda (cos-294) ((lambda (cos-293) (((cos-343 cos-293) cos-294) (lambda (cos-342) (lambda (cos-37) (if (tish ((cos-= cos-37) 0)) ((cos-342 306) 1) (if (tish ((cos-= cos-37) 1)) ((cos-342 306) 2) (if (tish ((cos-= cos-37) 2)) (cos-342 315) (if (tish ((cos-= cos-37) 3)) (cos-342 324) (cos-342 185))))))))) ((cos-219 198) (cos-135 ((((cos-51 3) ((cos-60 0) cos-150)) ((cos-60 1) cos-345)) ((cos-60 2) cos-346)))))) ((cos-219 198) (cos-51 0))))) (if (tish ((cos-= cos-145) 352)) (lambda (cos-345) (lambda (cos-346) ((lambda (cos-294) ((lambda (cos-293) (((cos-343 cos-293) cos-294) (lambda (cos-342) (lambda (cos-37) (if (tish ((cos-= cos-37) 0)) ((cos-342 306) 1) (if (tish ((cos-= cos-37) 1)) ((cos-342 306) 2) (if (tish ((cos-= cos-37) 2)) (cos-342 316) (if (tish ((cos-= cos-37) 3)) (cos-342 324) (cos-342 185))))))))) ((cos-219 198) (cos-135 ((((cos-51 3) ((cos-60 0) cos-150)) ((cos-60 1) cos-345)) ((cos-60 2) cos-346)))))) ((cos-219 198) (cos-51 0))))) (if (tish ((cos-= cos-145) 101)) (lambda (cos-345) (lambda (cos-346) ((lambda (cos-294) ((lambda (cos-293) (((cos-343 cos-293) cos-294) (lambda (cos-342) (lambda (cos-37) (if (tish ((cos-= cos-37) 0)) ((cos-342 306) 1) (if (tish ((cos-= cos-37) 1)) ((cos-342 306) 2) (if (tish ((cos-= cos-37) 2)) (cos-342 312) (if (tish ((cos-= cos-37) 3)) (cos-342 324) (cos-342 185))))))))) ((cos-219 198) (cos-135 ((((cos-51 3) ((cos-60 0) cos-150)) ((cos-60 1) cos-345)) ((cos-60 2) cos-346)))))) ((cos-219 198) (cos-51 0))))) (if (tish ((cos-= cos-145) 353)) (lambda (cos-345) (lambda (cos-346) (lambda (cos-354) ((lambda (cos-294) ((lambda (cos-293) (((cos-343 cos-293) cos-294) (lambda (cos-342) (lambda (cos-37) (if (tish ((cos-= cos-37) 0)) ((cos-342 305) 0) (if (tish ((cos-= cos-37) 1)) ((cos-342 306) 1) (if (tish ((cos-= cos-37) 2)) ((cos-342 305) 0) (if (tish ((cos-= cos-37) 3)) ((cos-342 306) 2) (if (tish ((cos-= cos-37) 4)) ((cos-342 306) 3) (if (tish ((cos-= cos-37) 5)) ((((cos-342 327) 101) 2) 1) (if (tish ((cos-= cos-37) 6)) ((((cos-342 327) 98) 2) 1) (if (tish ((cos-= cos-37) 7)) (cos-342 324) (cos-342 185))))))))))))) ((cos-219 198) (cos-135 (((((cos-51 4) ((cos-60 0) cos-150)) ((cos-60 1) cos-345)) ((cos-60 2) cos-346)) ((cos-60 3) cos-354)))))) ((cos-219 198) (cos-51 0)))))) (if (tish ((cos-= cos-145) 223)) (lambda (cos-345) ((lambda (cos-294) ((lambda (cos-293) (((cos-343 cos-293) cos-294) (lambda (cos-342) (lambda (cos-37) (if (tish ((cos-= cos-37) 0)) ((cos-342 305) 0) (if (tish ((cos-= cos-37) 1)) ((cos-342 306) 1) (if (tish ((cos-= cos-37) 2)) (((cos-342 311) 349) cos-172) (if (tish ((cos-= cos-37) 3)) (cos-342 185) (cos-342 185))))))))) ((cos-219 198) (cos-135 (((cos-51 2) ((cos-60 0) cos-150)) ((cos-60 1) cos-345)))))) ((cos-219 198) (cos-51 0)))) (if (tish ((cos-= cos-145) 222)) ((lambda (cos-294) ((lambda (cos-293) (((cos-343 cos-293) cos-294) (lambda (cos-342) (lambda (cos-37) (if (tish ((cos-= cos-37) 0)) ((cos-342 305) 0) (if (tish ((cos-= cos-37) 1)) (((cos-342 309) 349) cos-172) (if (tish ((cos-= cos-37) 2)) (cos-342 324) (cos-342 185)))))))) ((cos-219 198) (cos-135 ((cos-51 1) ((cos-60 0) cos-150)))))) ((cos-219 198) (cos-51 0))) (if (tish ((cos-= cos-145) 355)) (lambda (cos-345) ((lambda (cos-294) ((lambda (cos-293) (((cos-343 cos-293) cos-294) (lambda (cos-342) (lambda (cos-37) (if (tish ((cos-= cos-37) 0)) ((cos-342 306) 1) (if (tish ((cos-= cos-37) 1)) ((cos-342 319) 11) (if (tish ((cos-= cos-37) 2)) ((cos-342 306) 1) (if (tish ((cos-= cos-37) 3)) ((cos-342 305) 0) (if (tish ((cos-= cos-37) 4)) ((cos-342 305) 0) (if (tish ((cos-= cos-37) 5)) ((cos-342 306) 1) (if (tish ((cos-= cos-37) 6)) ((cos-342 307) 1) (if (tish ((cos-= cos-37) 7)) ((((cos-342 327) 352) 2) 1) (if (tish ((cos-= cos-37) 8)) ((((cos-342 327) 355) 1) 1) (if (tish ((cos-= cos-37) 9)) (cos-342 312) (if (tish ((cos-= cos-37) 10)) ((cos-342 317) 12) (if (tish ((cos-= cos-37) 11)) ((cos-342 307) 1) (if (tish ((cos-= cos-37) 12)) (cos-342 324) (cos-342 185)))))))))))))))))) ((cos-219 198) (cos-135 (((cos-51 2) ((cos-60 0) cos-150)) ((cos-60 1) cos-345)))))) ((cos-219 198) (cos-51 0)))) (if (tish ((cos-= cos-145) 201)) cos-201 (if (tish ((cos-= cos-145) 349)) cos-349 (if (tish ((cos-= cos-145) 150)) cos-150 (if (tish ((cos-= cos-145) 347)) (cos-150 150) (if (tish ((cos-= cos-145) 217)) (lambda (cos-37) 0) (if (tish ((cos-= cos-145) 198)) 0 (if (tish ((cos-= cos-145) 215)) cos-215 (if (tish ((cos-= cos-145) 218)) (lambda (cos-37) ((cos-= cos-215) (cos-37 215))) ((cos-150 217) cos-145))))))))))))))))))))))) (((cos-273 348) 275) 198))) (cos-172 198))) (cos-209 198)))) 1) ok ; JAVA check that automatic conversion is workable Expression: (17 356 (347 198)) Translation: (begin (define cos-356 (cos-347 198)) 1) ok Expression: (2 (356 101 15 10) 150) Translation: ((cos-= (((cos-356 101) 15) 10)) 150) ok Expression: (2 (356 353 4 15 10) 154) Translation: ((cos-= ((((cos-356 353) 4) 15) 10)) 154) ok Expression: (126 (356 223 87) (2 (356 222) 87)) Translation: ((lambda (cos-37) (cos-52 cos-37)) (((cos-51 2) ((cos-= (cos-356 222)) 87)) ((cos-356 223) 87))) ok Expression: (2 (356 355 0) 1) Translation: ((cos-= ((cos-356 355) 0)) 1) ok Expression: (2 (356 355 1) 1) Translation: ((cos-= ((cos-356 355) 1)) 1) ok Expression: (2 (356 355 5) 120) Translation: ((cos-= ((cos-356 355) 5)) 120) ok ; Yay! testing says this works. ; So structure for bytecode interpretation is in place. ; Very few opcodes actually implemented yet though. ; NOTE end of part 2, start of part 3 ; The following parts of the message are the beginnings ; of embedding an alternate visual primer Expression: (1 357) Translation: (cos-intro 357) ok ; GATE simulating unless gates ; for embedded image-and-logic-based primer ; practice with pure logic gate ; X unless Y = (X if Y=0, otherwise 0) Expression: (17 358 -1 0 37 -1 0 36 -1 13 (37) (8 (36))) Translation: (begin (define cos-358 (lambda (cos-37) (lambda (cos-36) ((cos-and cos-37) (cos-not cos-36))))) 1) ok ; if second input is true, output is blocked (false) ; if second input is false, output copies first input Expression: (2 (15) (358 (15) (15))) Translation: ((cos-= cos-false) ((cos-358 cos-false) cos-false)) ok Expression: (2 (16) (358 (16) (15))) Translation: ((cos-= cos-true) ((cos-358 cos-true) cos-false)) ok Expression: (2 (15) (358 (15) (16))) Translation: ((cos-= cos-false) ((cos-358 cos-false) cos-true)) ok Expression: (2 (15) (358 (16) (16))) Translation: ((cos-= cos-false) ((cos-358 cos-true) cos-true)) ok ; To do: add a simple simulator for non-grid-based ; logic -- much simpler to understand than ; grid-based ; On to a grid-based logic simulation ; first, need unbounded, mutable matrices Expression: (17 359 -1 0 133 -1 (27 (132 (133)))) Translation: (begin (define cos-359 (lambda (cos-133) (cos-make-cell (cos-132 cos-133)))) 1) ok Expression: (17 360 -1 0 328 -1 0 37 -1 0 361 -1 28 (328) -1 128 (29 (328)) (361) (37)) Translation: (begin (define cos-360 (lambda (cos-328) (lambda (cos-37) (lambda (cos-361) ((cos-set! cos-328) (((cos-128 (cos-get! cos-328)) cos-361) cos-37)))))) 1) ok Expression: (17 362 -1 0 328 -1 0 361 -1 130 (29 (328)) (361)) Translation: (begin (define cos-362 (lambda (cos-328) (lambda (cos-361) ((cos-130 (cos-get! cos-328)) cos-361)))) 1) ok Expression: (17 363 (359 0)) Translation: (begin (define cos-363 (cos-359 0)) 1) ok Expression: (2 0 -1 362 (363) -1 70 1 2 3) Translation: ((cos-= 0) ((cos-362 cos-363) ((((cos-51 3) 1) 2) 3))) ok Expression: (360 (363) 10 -1 70 1 2 3) Translation: (((cos-360 cos-363) 10) ((((cos-51 3) 1) 2) 3)) ok Expression: (2 10 -1 362 (363) -1 70 1 2 3) Translation: ((cos-= 10) ((cos-362 cos-363) ((((cos-51 3) 1) 2) 3))) ok ; go through a circuit of unless gates and analyze data flow Expression: (17 364 -1 0 365 -1 11 366 (359 (15)) (126 (82 (0 367 -1 11 368 (56 (367) 0) -1 11 369 (56 (367) 1) -1 11 370 (56 (367) 2) -1 11 371 (56 (367) 3) -1 11 171 (56 (367) 4) -1 (18 (2 (368) (370)) (126 (360 (366) (171) -1 70 (370) (371) 372) (360 (366) (16) -1 70 (370) (371) 373) (360 (366) (16) -1 70 (368) (369) 374) (367)) (126 (360 (366) (171) -1 70 (370) (371) 375) (360 (366) (16) -1 70 (370) (371) 376) (360 (366) (16) -1 70 (368) (369) 377) (367)))) (365)) (366))) Translation: (begin (define cos-364 (lambda (cos-365) ((lambda (cos-366) ((lambda (cos-37) (cos-52 cos-37)) (((cos-51 2) cos-366) ((cos-82 (lambda (cos-367) ((lambda (cos-368) ((lambda (cos-369) ((lambda (cos-370) ((lambda (cos-371) ((lambda (cos-171) (if (tish ((cos-= cos-368) cos-370)) ((lambda (cos-37) (cos-52 cos-37)) (((((cos-51 4) cos-367) (((cos-360 cos-366) cos-true) ((((cos-51 3) cos-368) cos-369) 374))) (((cos-360 cos-366) cos-true) ((((cos-51 3) cos-370) cos-371) 373))) (((cos-360 cos-366) cos-171) ((((cos-51 3) cos-370) cos-371) 372)))) ((lambda (cos-37) (cos-52 cos-37)) (((((cos-51 4) cos-367) (((cos-360 cos-366) cos-true) ((((cos-51 3) cos-368) cos-369) 377))) (((cos-360 cos-366) cos-true) ((((cos-51 3) cos-370) cos-371) 376))) (((cos-360 cos-366) cos-171) ((((cos-51 3) cos-370) cos-371) 375)))))) ((cos-56 cos-367) 4))) ((cos-56 cos-367) 3))) ((cos-56 cos-367) 2))) ((cos-56 cos-367) 1))) ((cos-56 cos-367) 0)))) cos-365)))) (cos-359 cos-false)))) 1) ok ; move forward one simulation step Expression: (17 378 -1 0 365 -1 0 366 (82 (0 367 -1 11 368 (56 (367) 0) -1 11 369 (56 (367) 1) -1 11 370 (56 (367) 2) -1 11 371 (56 (367) 3) -1 11 171 (56 (367) 4) -1 11 379 (18 (2 (368) (370)) (18 (362 (366) -1 70 (368) (369) 373) (13 (362 (366) -1 70 (368) (369) 372) (8 (13 (362 (366) -1 70 (368) (369) 375) (8 (362 (366) -1 70 (368) (369) 377))))) (18 (362 (366) -1 70 (368) (369) 376) (362 (366) -1 70 (368) (369) 375) (16))) (18 (362 (366) -1 70 (368) (369) 376) (13 (362 (366) -1 70 (368) (369) 375) (8 (13 (362 (366) -1 70 (368) (369) 372) (8 (362 (366) -1 70 (368) (369) 374))))) (18 (362 (366) -1 70 (368) (369) 373) (362 (366) -1 70 (368) (369) 372) (16)))) -1 70 (368) (369) (370) (371) (379)) (365))) Translation: (begin (define cos-378 (lambda (cos-365) (lambda (cos-366) ((cos-82 (lambda (cos-367) ((lambda (cos-368) ((lambda (cos-369) ((lambda (cos-370) ((lambda (cos-371) ((lambda (cos-171) ((lambda (cos-379) ((((((cos-51 5) cos-368) cos-369) cos-370) cos-371) cos-379)) (if (tish ((cos-= cos-368) cos-370)) (if (tish ((cos-362 cos-366) ((((cos-51 3) cos-368) cos-369) 373))) ((cos-and ((cos-362 cos-366) ((((cos-51 3) cos-368) cos-369) 372))) (cos-not ((cos-and ((cos-362 cos-366) ((((cos-51 3) cos-368) cos-369) 375))) (cos-not ((cos-362 cos-366) ((((cos-51 3) cos-368) cos-369) 377)))))) (if (tish ((cos-362 cos-366) ((((cos-51 3) cos-368) cos-369) 376))) ((cos-362 cos-366) ((((cos-51 3) cos-368) cos-369) 375)) cos-true)) (if (tish ((cos-362 cos-366) ((((cos-51 3) cos-368) cos-369) 376))) ((cos-and ((cos-362 cos-366) ((((cos-51 3) cos-368) cos-369) 375))) (cos-not ((cos-and ((cos-362 cos-366) ((((cos-51 3) cos-368) cos-369) 372))) (cos-not ((cos-362 cos-366) ((((cos-51 3) cos-368) cos-369) 374)))))) (if (tish ((cos-362 cos-366) ((((cos-51 3) cos-368) cos-369) 373))) ((cos-362 cos-366) ((((cos-51 3) cos-368) cos-369) 372)) cos-true))))) ((cos-56 cos-367) 4))) ((cos-56 cos-367) 3))) ((cos-56 cos-367) 2))) ((cos-56 cos-367) 1))) ((cos-56 cos-367) 0)))) cos-365)))) 1) ok ; wrap up both phases of simulation Expression: (17 380 -1 0 365 -1 11 366 (364 (365)) -1 378 (365) (366)) Translation: (begin (define cos-380 (lambda (cos-365) ((lambda (cos-366) ((cos-378 cos-365) cos-366)) (cos-364 cos-365)))) 1) ok ; A circuit is a list of gates ; Each gate is a list (x1 y1 x2 y2 v) ; where the coordinates (x1,y1) and (x2,y2) represent ; start and end points of a wire on a plane, carrying a ; logic value v. ; Wires copy values from their start point. ; | ; | (A) ; V ; -->--> ; (B)(C) ; ; Wire C here copies from wire B. ; If wire A is on, it blocks (sets to 0) C. Expression: (11 381 (70 (70 2 2 4 2 (16)) (70 4 2 6 2 (16)) (70 6 2 8 2 (16)) (70 6 4 6 2 (16))) -1 11 382 (70 (70 2 2 4 2 (16)) (70 4 2 6 2 (16)) (70 6 2 8 2 (15)) (70 6 4 6 2 (16))) -1 58 (380 (381)) (382)) Translation: ((lambda (cos-381) ((lambda (cos-382) ((cos-58 (cos-380 cos-381)) cos-382)) (((((cos-51 4) ((((((cos-51 5) 2) 2) 4) 2) cos-true)) ((((((cos-51 5) 4) 2) 6) 2) cos-true)) ((((((cos-51 5) 6) 2) 8) 2) cos-false)) ((((((cos-51 5) 6) 4) 6) 2) cos-true)))) (((((cos-51 4) ((((((cos-51 5) 2) 2) 4) 2) cos-true)) ((((((cos-51 5) 4) 2) 6) 2) cos-true)) ((((((cos-51 5) 6) 2) 8) 2) cos-true)) ((((((cos-51 5) 6) 4) 6) 2) cos-true))) ok ; okay, now let us make a simple image class ; we are going to encode each row as a single binary number, ; rather than a vector, so that images will be pretty ; obvious in the raw, uninterpreted message Expression: (17 383 -1 26 (46 384) -1 11 385 (34 (46) 2) (18 (2 0 -1 384) (8 -1 2 (46) -1 6 2 -1 385) (383 (385) -1 7 (384) 1))) Translation: (begin (define cos-383 (lambda (cos-46) (lambda (cos-384) ((lambda (cos-385) (if (tish ((cos-= 0) cos-384)) (cos-not ((cos-= cos-46) ((cos-* 2) cos-385))) ((cos-383 cos-385) ((cos-- cos-384) 1)))) ((cos-div cos-46) 2))))) 1) ok Expression: (2 0 -1 383 6 0) Translation: ((cos-= 0) ((cos-383 6) 0)) ok Expression: (2 1 -1 383 6 1) Translation: ((cos-= 1) ((cos-383 6) 1)) ok Expression: (2 1 -1 383 6 2) Translation: ((cos-= 1) ((cos-383 6) 2)) ok Expression: (2 0 -1 383 6 3) Translation: ((cos-= 0) ((cos-383 6) 3)) ok Expression: (2 0 -1 383 6 4) Translation: ((cos-= 0) ((cos-383 6) 4)) ok Expression: (2 0 -1 383 8 0) Translation: ((cos-= 0) ((cos-383 8) 0)) ok Expression: (2 0 -1 383 8 1) Translation: ((cos-= 0) ((cos-383 8) 1)) ok Expression: (2 0 -1 383 8 2) Translation: ((cos-= 0) ((cos-383 8) 2)) ok Expression: (2 1 -1 383 8 3) Translation: ((cos-= 1) ((cos-383 8) 3)) ok Expression: (17 386 -1 26 (129 39 53) -1 70 (129) (39) (53)) Translation: (begin (define cos-386 (lambda (cos-129) (lambda (cos-39) (lambda (cos-53) ((((cos-51 3) cos-129) cos-39) cos-53))))) 1) ok Expression: (17 387 -1 26 (388 389 390) -1 11 129 (56 (388) 0) -1 11 39 (56 (388) 1) -1 11 53 (56 (388) 2) -1 11 391 (56 (53) (389)) -1 383 (391) (7 (7 (39) (390)) 1)) Translation: (begin (define cos-387 (lambda (cos-388) (lambda (cos-389) (lambda (cos-390) ((lambda (cos-129) ((lambda (cos-39) ((lambda (cos-53) ((lambda (cos-391) ((cos-383 cos-391) ((cos-- ((cos-- cos-39) cos-390)) 1))) ((cos-56 cos-53) cos-389))) ((cos-56 cos-388) 2))) ((cos-56 cos-388) 1))) ((cos-56 cos-388) 0)))))) 1) ok Expression: (17 392 -1 0 388 -1 56 (388) 0) Translation: (begin (define cos-392 (lambda (cos-388) ((cos-56 cos-388) 0))) 1) ok Expression: (17 393 -1 0 388 -1 56 (388) 1) Translation: (begin (define cos-393 (lambda (cos-388) ((cos-56 cos-388) 1))) 1) ok Expression: (17 394 -1 386 3 5 -1 70 0 1 16) Translation: (begin (define cos-394 (((cos-386 3) 5) ((((cos-51 3) 0) 1) 16))) 1) ok Expression: (2 3 (392 -1 394)) Translation: ((cos-= 3) (cos-392 cos-394)) ok Expression: (2 5 (393 -1 394)) Translation: ((cos-= 5) (cos-393 cos-394)) ok Expression: (2 (15) (387 (394) 0 0)) Translation: ((cos-= cos-false) (((cos-387 cos-394) 0) 0)) ok Expression: (2 (15) (387 (394) 0 4)) Translation: ((cos-= cos-false) (((cos-387 cos-394) 0) 4)) ok Expression: (2 (15) (387 (394) 1 0)) Translation: ((cos-= cos-false) (((cos-387 cos-394) 1) 0)) ok Expression: (2 (16) (387 (394) 1 4)) Translation: ((cos-= cos-true) (((cos-387 cos-394) 1) 4)) ok Expression: (2 (16) (387 (394) 2 0)) Translation: ((cos-= cos-true) (((cos-387 cos-394) 2) 0)) ok Expression: (2 (15) (387 (394) 2 4)) Translation: ((cos-= cos-false) (((cos-387 cos-394) 2) 4)) ok ; need a way to join two lists Expression: (17 395 -1 0 205 -1 0 206 -1 (18 (3 (55 -1 205) 0) (57 (52 -1 205) (395 (54 -1 205) (206))) (206))) Translation: (begin (define cos-395 (lambda (cos-205) (lambda (cos-206) (if (tish ((cos-> (cos-55 cos-205)) 0)) ((cos-57 (cos-52 cos-205)) ((cos-395 (cos-54 cos-205)) cos-206)) cos-206)))) 1) ok Expression: (17 396 -1 0 53 -1 (18 (3 (55 -1 53) 2) (395 (52 -1 53) (396 -1 54 -1 53)) (18 (2 (55 -1 53) 2) (395 (52 -1 53) -1 (52 -1 54 -1 53)) (18 (2 (55 -1 53) 1) (52 -1 53) (70))))) Translation: (begin (define cos-396 (lambda (cos-53) (if (tish ((cos-> (cos-55 cos-53)) 2)) ((cos-395 (cos-52 cos-53)) (cos-396 (cos-54 cos-53))) (if (tish ((cos-= (cos-55 cos-53)) 2)) ((cos-395 (cos-52 cos-53)) (cos-52 (cos-54 cos-53))) (if (tish ((cos-= (cos-55 cos-53)) 1)) (cos-52 cos-53) (cos-51 0)))))) 1) ok Expression: (58 (70 1 2 3 4) (395 (70 1 2) (70 3 4))) Translation: ((cos-58 (((((cos-51 4) 1) 2) 3) 4)) ((cos-395 (((cos-51 2) 1) 2)) (((cos-51 2) 3) 4))) ok Expression: (58 (70 1 2 3 4) (396 (70 (70 1 2) (70 3) (70 4)))) Translation: ((cos-58 (((((cos-51 4) 1) 2) 3) 4)) (cos-396 ((((cos-51 3) (((cos-51 2) 1) 2)) ((cos-51 1) 3)) ((cos-51 1) 4)))) ok ; helper for pairing Expression: (17 397 -1 0 37 -1 0 53 -1 82 (0 36 (70 (37) (36))) (53)) Translation: (begin (define cos-397 (lambda (cos-37) (lambda (cos-53) ((cos-82 (lambda (cos-36) (((cos-51 2) cos-37) cos-36))) cos-53)))) 1) ok Expression: (58 (70 (70 1 10) (70 1 11)) (397 1 (70 10 11))) Translation: ((cos-58 (((cos-51 2) (((cos-51 2) 1) 10)) (((cos-51 2) 1) 11))) ((cos-397 1) (((cos-51 2) 10) 11))) ok ; need a way to take product of domains Expression: (17 398 -1 0 205 -1 0 206 (18 (3 (55 -1 205) 0) (395 (397 (52 -1 205) (206)) (398 (54 -1 205) (206))) (70))) Translation: (begin (define cos-398 (lambda (cos-205) (lambda (cos-206) (if (tish ((cos-> (cos-55 cos-205)) 0)) ((cos-395 ((cos-397 (cos-52 cos-205)) cos-206)) ((cos-398 (cos-54 cos-205)) cos-206)) (cos-51 0))))) 1) ok Expression: (58 (70 (70 1 10) (70 1 11) (70 2 10) (70 2 11)) (398 (70 1 2) (70 10 11))) Translation: ((cos-58 (((((cos-51 4) (((cos-51 2) 1) 10)) (((cos-51 2) 1) 11)) (((cos-51 2) 2) 10)) (((cos-51 2) 2) 11))) ((cos-398 (((cos-51 2) 1) 2)) (((cos-51 2) 10) 11))) ok ; need a way to make counting sets Expression: (17 202 -1 0 399 -1 0 400 (18 (9 (399) (400)) (57 (399) (202 (5 (399) 1) (400))) (70))) Translation: (begin (define cos-202 (lambda (cos-399) (lambda (cos-400) (if (tish ((cos-<= cos-399) cos-400)) ((cos-57 cos-399) ((cos-202 ((cos-+ cos-399) 1)) cos-400)) (cos-51 0))))) 1) ok Expression: (58 (70 0 1 2 3 4) (202 0 4)) Translation: ((cos-58 ((((((cos-51 5) 0) 1) 2) 3) 4)) ((cos-202 0) 4)) ok ; given an image of a circuit, extract a model. ; wire elements are centered on multiples of 8 ; individual element... Expression: (17 401 -1 0 388 -1 0 402 -1 0 403 -1 0 404 -1 0 405 (18 (387 (388) (405) (404)) (11 406 (387 (388) (5 (405) 4) (404)) -1 11 407 (18 (406) 0 1) -1 11 408 (18 (406) 1 0) -1 11 409 (387 (388) (5 (405) -1 5 (6 4 -1 408) (6 2 -1 407)) (5 (404) -1 7 (6 4 -1 407) (6 2 -1 408))) -1 11 410 (18 (409) 1 (7 0 1)) -1 11 407 (6 (410) (407)) -1 11 408 (6 (410) (408)) -1 11 411 (387 (388) (5 (405) (407)) (7 (404) (408))) -1 (70 (70 (7 (402) (407)) (7 (403) (408)) (5 (402) (407)) (5 (403) (408)) (411)))) (70))) Translation: (begin (define cos-401 (lambda (cos-388) (lambda (cos-402) (lambda (cos-403) (lambda (cos-404) (lambda (cos-405) (if (tish (((cos-387 cos-388) cos-405) cos-404)) ((lambda (cos-406) ((lambda (cos-407) ((lambda (cos-408) ((lambda (cos-409) ((lambda (cos-410) ((lambda (cos-407) ((lambda (cos-408) ((lambda (cos-411) ((cos-51 1) ((((((cos-51 5) ((cos-- cos-402) cos-407)) ((cos-- cos-403) cos-408)) ((cos-+ cos-402) cos-407)) ((cos-+ cos-403) cos-408)) cos-411))) (((cos-387 cos-388) ((cos-+ cos-405) cos-407)) ((cos-- cos-404) cos-408)))) ((cos-* cos-410) cos-408))) ((cos-* cos-410) cos-407))) (if (tish cos-409) 1 ((cos-- 0) 1)))) (((cos-387 cos-388) ((cos-+ cos-405) ((cos-+ ((cos-* 4) cos-408)) ((cos-* 2) cos-407)))) ((cos-+ cos-404) ((cos-- ((cos-* 4) cos-407)) ((cos-* 2) cos-408)))))) (if (tish cos-406) 1 0))) (if (tish cos-406) 0 1))) (((cos-387 cos-388) ((cos-+ cos-405) 4)) cos-404)) (cos-51 0)))))))) 1) ok ; full circuit... Expression: (17 412 -1 0 388 -1 11 129 (34 (392 -1 388) 8) -1 11 39 (34 (393 -1 388) 8) (396 (82 (0 171 -1 11 402 (56 (171) 0) -1 11 403 (56 (171) 1) -1 11 404 (6 8 -1 402) -1 11 405 (6 8 -1 403) -1 401 (388) (402) (403) (404) (405)) (398 (202 0 (7 (39) 1)) (202 0 (7 (129) 1)))))) Translation: (begin (define cos-412 (lambda (cos-388) ((lambda (cos-129) ((lambda (cos-39) (cos-396 ((cos-82 (lambda (cos-171) ((lambda (cos-402) ((lambda (cos-403) ((lambda (cos-404) ((lambda (cos-405) (((((cos-401 cos-388) cos-402) cos-403) cos-404) cos-405)) ((cos-* 8) cos-403))) ((cos-* 8) cos-402))) ((cos-56 cos-171) 1))) ((cos-56 cos-171) 0)))) ((cos-398 ((cos-202 0) ((cos-- cos-39) 1))) ((cos-202 0) ((cos-- cos-129) 1)))))) ((cos-div (cos-393 cos-388)) 8))) ((cos-div (cos-392 cos-388)) 8)))) 1) ok ; GATE testing alternate primer based on gates: COS_NOT circuit ; This section contains one or more representations of a circuit ; constructed using UNLESS gates. Needs elaboration... ; graphic representation : IMAGE_SRC=COS_NOT.gif ; Expression: (17 413 -1 70 (70 0 6 2 6 (16)) (70 2 6 4 6 (16)) (70 4 6 6 6 (16)) (70 6 6 8 6 (16)) (70 8 4 8 6 (16)) (70 8 6 8 8 (15)) (70 8 8 10 8 (15)) (70 10 8 12 8 (15)) (70 12 8 12 6 (15)) (70 12 6 14 6 (15)) (70 14 6 16 6 (15)) (70 16 6 18 6 (15)) (70 18 6 20 6 (15))) Translation: (begin (define cos-413 ((((((((((((((cos-51 13) ((((((cos-51 5) 0) 6) 2) 6) cos-true)) ((((((cos-51 5) 2) 6) 4) 6) cos-true)) ((((((cos-51 5) 4) 6) 6) 6) cos-true)) ((((((cos-51 5) 6) 6) 8) 6) cos-true)) ((((((cos-51 5) 8) 4) 8) 6) cos-true)) ((((((cos-51 5) 8) 6) 8) 8) cos-false)) ((((((cos-51 5) 8) 8) 10) 8) cos-false)) ((((((cos-51 5) 10) 8) 12) 8) cos-false)) ((((((cos-51 5) 12) 8) 12) 6) cos-false)) ((((((cos-51 5) 12) 6) 14) 6) cos-false)) ((((((cos-51 5) 14) 6) 16) 6) cos-false)) ((((((cos-51 5) 16) 6) 18) 6) cos-false)) ((((((cos-51 5) 18) 6) 20) 6) cos-false))) 1) ok Expression: (17 414 -1 386 109 169 -1 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70988433612780846483815379501056 70988433612780846483815379501056 70988433612780846483815379501056 70988433612780846483815379501056 70988433612780846483815379501056 70988433612780846483815379501056 70988433612780846483815379501056 70988433612780846483815379501056 70988433612780846483815379501056 157188674428300445785591197466624 70988433612780846483815379501056 91345246151024333285198564073170788415908614144 93491859435573384358354500990227319276474095114240 93514695747111140436605198231510998124787939671040 93491859435573384358354500990227319276474095114240 91345246151024313002788965143866847338302541824 20282409620179953113991009533952 20282409640250010666187001692160 20282409608374036906816896499712 20282409608374036906816896499712 20282409608374036906816896499712 20282409608374036906816896499712 20282409608374036906816896499712 20282409608374036906816896499712 20282409608374036906816896499712 157188674433022812268460842680320 70988433617503212966685024714752 20287361439366675670961171202048 7427753572507870520879874048 5069441813236621630500514037760 7427753572507870520879874048 4951835715005247013919916032 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) Translation: (begin (define cos-414 (((cos-386 109) 169) ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((cos-51 109) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 70988433612780846483815379501056) 70988433612780846483815379501056) 70988433612780846483815379501056) 70988433612780846483815379501056) 70988433612780846483815379501056) 70988433612780846483815379501056) 70988433612780846483815379501056) 70988433612780846483815379501056) 70988433612780846483815379501056) 157188674428300445785591197466624) 70988433612780846483815379501056) 91345246151024333285198564073170788415908614144) 93491859435573384358354500990227319276474095114240) 93514695747111140436605198231510998124787939671040) 93491859435573384358354500990227319276474095114240) 91345246151024313002788965143866847338302541824) 20282409620179953113991009533952) 20282409640250010666187001692160) 20282409608374036906816896499712) 20282409608374036906816896499712) 20282409608374036906816896499712) 20282409608374036906816896499712) 20282409608374036906816896499712) 20282409608374036906816896499712) 20282409608374036906816896499712) 157188674433022812268460842680320) 70988433617503212966685024714752) 20287361439366675670961171202048) 7427753572507870520879874048) 5069441813236621630500514037760) 7427753572507870520879874048) 4951835715005247013919916032) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0))) 1) ok Expression: (58 (413) (412 (414))) Translation: ((cos-58 cos-413) (cos-412 cos-414)) ok ; GATE testing alternate primer based on gates: COS_AND circuit ; This section contains one or more representations of a circuit ; constructed using UNLESS gates. Needs elaboration... ; graphic representation : IMAGE_SRC=COS_AND.gif ; Expression: (17 415 -1 70 (70 0 2 2 2 (16)) (70 0 8 2 8 (16)) (70 2 2 4 2 (16)) (70 2 4 4 4 (16)) (70 2 6 4 6 (16)) (70 2 8 4 8 (16)) (70 4 2 4 4 (16)) (70 4 8 4 6 (16)) (70 4 4 6 4 (15)) (70 4 6 6 6 (15)) (70 6 4 8 4 (15)) (70 6 6 8 6 (15)) (70 8 4 10 4 (15)) (70 8 6 10 6 (15)) (70 10 2 10 4 (16)) (70 10 4 10 6 (16)) (70 10 6 10 8 (16)) (70 10 8 12 8 (16)) (70 12 8 14 8 (16)) (70 14 8 16 8 (16)) (70 16 8 18 8 (16))) Translation: (begin (define cos-415 ((((((((((((((((((((((cos-51 21) ((((((cos-51 5) 0) 2) 2) 2) cos-true)) ((((((cos-51 5) 0) 8) 2) 8) cos-true)) ((((((cos-51 5) 2) 2) 4) 2) cos-true)) ((((((cos-51 5) 2) 4) 4) 4) cos-true)) ((((((cos-51 5) 2) 6) 4) 6) cos-true)) ((((((cos-51 5) 2) 8) 4) 8) cos-true)) ((((((cos-51 5) 4) 2) 4) 4) cos-true)) ((((((cos-51 5) 4) 8) 4) 6) cos-true)) ((((((cos-51 5) 4) 4) 6) 4) cos-false)) ((((((cos-51 5) 4) 6) 6) 6) cos-false)) ((((((cos-51 5) 6) 4) 8) 4) cos-false)) ((((((cos-51 5) 6) 6) 8) 6) cos-false)) ((((((cos-51 5) 8) 4) 10) 4) cos-false)) ((((((cos-51 5) 8) 6) 10) 6) cos-false)) ((((((cos-51 5) 10) 2) 10) 4) cos-true)) ((((((cos-51 5) 10) 4) 10) 6) cos-true)) ((((((cos-51 5) 10) 6) 10) 8) cos-true)) ((((((cos-51 5) 10) 8) 12) 8) cos-true)) ((((((cos-51 5) 12) 8) 14) 8) cos-true)) ((((((cos-51 5) 14) 8) 16) 8) cos-true)) ((((((cos-51 5) 16) 8) 18) 8) cos-true))) 1) ok Expression: (17 416 -1 386 88 153 -1 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1393817842556096504999948852953487079636992 1426572561856164772867447650997894026008461312 1426921016316803796993697638211132397778370560 1426572561856164772867447650997894026008461312 1393817842556096504999948852953487079636992 4652297985247222083446014754739453952 4652297985247222083446014754739453952 4652297985247222083446014754739453952 4652297985247222083446014754739453952 4652297985247222083446014754739453952 4652297985247222083446014754739453952 4652297985247222083446014754739453952 4652297985247222083446014754739453952 4652297985247222083446014754739453952 10301516967333134613344746956923076608 4652297985247222083446014754739453952 22597200451849068703463233064351563776 21767438145759040575885342464405833515008 21773086801895671625762525533868623134720 21767438145759040575885342464405833515008 21267972456064148108192943134426005504 16528282690043758247936 16528282690043758247936 16528282690043758247936 16528282690043758247936 16528282690043758247936 16528282690043758247936 16528282690043758247936 16528282690043758247936 16528282690043758247936 36598340242239750406144 16528282690043758247936 21267972456064152830559426004071219200 21767438145759040575885342464405833515008 21773086801895671625762525533868623134720 21767438145759040575885342464405833515008 22597200451849063981096750194706350080 4652297985247222083446014754739453952 10301516967333114543287194760930918400 4652297985247222083446014754739453952 4652297985247222083446014754739453952 4652297985247222083446014754739453952 4652297985247222083446014754739453952 4652297985247222083446014754739453952 4652297985247222083446014754739453952 4652297985247222083446014754739453952 4652297985247242153503566950731612160 4652297985247222083446014754739453952 1393817842556096505004672372375453786181632 1426572561856164772867448831031059868280682496 1426921016316803796993698818532533014315924480 1426572561856164772867448831031059868280682496 1393817842556096504999950005892584140967936 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) Translation: (begin (define cos-416 (((cos-386 88) 153) (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((cos-51 88) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 1393817842556096504999948852953487079636992) 1426572561856164772867447650997894026008461312) 1426921016316803796993697638211132397778370560) 1426572561856164772867447650997894026008461312) 1393817842556096504999948852953487079636992) 4652297985247222083446014754739453952) 4652297985247222083446014754739453952) 4652297985247222083446014754739453952) 4652297985247222083446014754739453952) 4652297985247222083446014754739453952) 4652297985247222083446014754739453952) 4652297985247222083446014754739453952) 4652297985247222083446014754739453952) 4652297985247222083446014754739453952) 10301516967333134613344746956923076608) 4652297985247222083446014754739453952) 22597200451849068703463233064351563776) 21767438145759040575885342464405833515008) 21773086801895671625762525533868623134720) 21767438145759040575885342464405833515008) 21267972456064148108192943134426005504) 16528282690043758247936) 16528282690043758247936) 16528282690043758247936) 16528282690043758247936) 16528282690043758247936) 16528282690043758247936) 16528282690043758247936) 16528282690043758247936) 16528282690043758247936) 36598340242239750406144) 16528282690043758247936) 21267972456064152830559426004071219200) 21767438145759040575885342464405833515008) 21773086801895671625762525533868623134720) 21767438145759040575885342464405833515008) 22597200451849063981096750194706350080) 4652297985247222083446014754739453952) 10301516967333114543287194760930918400) 4652297985247222083446014754739453952) 4652297985247222083446014754739453952) 4652297985247222083446014754739453952) 4652297985247222083446014754739453952) 4652297985247222083446014754739453952) 4652297985247222083446014754739453952) 4652297985247222083446014754739453952) 4652297985247242153503566950731612160) 4652297985247222083446014754739453952) 1393817842556096505004672372375453786181632) 1426572561856164772867448831031059868280682496) 1426921016316803796993698818532533014315924480) 1426572561856164772867448831031059868280682496) 1393817842556096504999950005892584140967936) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0))) 1) ok Expression: (58 (415) (412 (416))) Translation: ((cos-58 cos-415) (cos-412 cos-416)) ok ; GATE testing alternate primer based on gates: COS_OR circuit ; This section contains one or more representations of a circuit ; constructed using UNLESS gates. Needs elaboration... ; graphic representation : IMAGE_SRC=COS_OR.gif ; Expression: (17 417 -1 70 (70 2 4 4 4 (16)) (70 2 6 4 6 (16)) (70 4 4 6 4 (16)) (70 4 6 6 6 (16)) (70 6 4 8 4 (16)) (70 6 6 8 6 (16)) (70 8 4 10 4 (16)) (70 8 6 10 6 (16)) (70 8 8 10 8 (16)) (70 10 2 10 4 (16)) (70 10 4 10 6 (15)) (70 10 6 10 8 (15)) (70 10 8 12 8 (16)) (70 12 8 14 8 (16)) (70 14 8 16 8 (16)) (70 16 8 18 8 (16))) Translation: (begin (define cos-417 (((((((((((((((((cos-51 16) ((((((cos-51 5) 2) 4) 4) 4) cos-true)) ((((((cos-51 5) 2) 6) 4) 6) cos-true)) ((((((cos-51 5) 4) 4) 6) 4) cos-true)) ((((((cos-51 5) 4) 6) 6) 6) cos-true)) ((((((cos-51 5) 6) 4) 8) 4) cos-true)) ((((((cos-51 5) 6) 6) 8) 6) cos-true)) ((((((cos-51 5) 8) 4) 10) 4) cos-true)) ((((((cos-51 5) 8) 6) 10) 6) cos-true)) ((((((cos-51 5) 8) 8) 10) 8) cos-true)) ((((((cos-51 5) 10) 2) 10) 4) cos-true)) ((((((cos-51 5) 10) 4) 10) 6) cos-false)) ((((((cos-51 5) 10) 6) 10) 8) cos-false)) ((((((cos-51 5) 10) 8) 12) 8) cos-true)) ((((((cos-51 5) 12) 8) 14) 8) cos-true)) ((((((cos-51 5) 14) 8) 16) 8) cos-true)) ((((((cos-51 5) 16) 8) 18) 8) cos-true))) 1) ok Expression: (17 418 -1 386 93 169 -1 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1083197534374707740536733696 1083197534374707740536733696 1083197534374707740536733696 1083197534374707740536733696 1083197534374707740536733696 1083197534374707740536733696 1083197534374707740536733696 1083197534374707740536733696 1083197534374707740536733696 2398508826115424282617053184 1083197534374707740536733696 1393817842880620319903542542602811421491200 1426572562188314580663368240207299650082832384 1426921016649034735665972873387614085757009920 1426572562188314580663368240207299650082832384 1393817842880620010418532721257742696710144 309485009821345068724781056 309485009821345068724781056 309485009821345068724781056 309485009821345068724781056 309485009821345068724781056 309485009821345068724781056 309485009821345068724781056 309485009821345068724781056 309485009821345068724781056 2398508826115424282617053184 1083197534374707740536733696 1393817842880620319903542542602811421491200 1426572562188314580663368240207299650082832384 1426921016649034735665972873387614085757009920 1426572562188314580663368240207299650082832384 1393817842880620010418532721257742696710144 309485009821345068724781056 309485009821345068724781056 309485009821345068724781056 309485009821345068724781056 309485009821345068724781056 309485009821345068724781056 309485009821345068724781056 309485009821345068724781056 309485009821345068724781056 2398508826115424282617053184 1083197534374707740536733696 5261320725979531179706023936 5068203855487903484589302087680 5069441814416943031117047398400 5068203855487903484589302087680 4951835716158186110981242880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) Translation: (begin (define cos-418 (((cos-386 93) 169) ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((cos-51 93) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 1083197534374707740536733696) 1083197534374707740536733696) 1083197534374707740536733696) 1083197534374707740536733696) 1083197534374707740536733696) 1083197534374707740536733696) 1083197534374707740536733696) 1083197534374707740536733696) 1083197534374707740536733696) 2398508826115424282617053184) 1083197534374707740536733696) 1393817842880620319903542542602811421491200) 1426572562188314580663368240207299650082832384) 1426921016649034735665972873387614085757009920) 1426572562188314580663368240207299650082832384) 1393817842880620010418532721257742696710144) 309485009821345068724781056) 309485009821345068724781056) 309485009821345068724781056) 309485009821345068724781056) 309485009821345068724781056) 309485009821345068724781056) 309485009821345068724781056) 309485009821345068724781056) 309485009821345068724781056) 2398508826115424282617053184) 1083197534374707740536733696) 1393817842880620319903542542602811421491200) 1426572562188314580663368240207299650082832384) 1426921016649034735665972873387614085757009920) 1426572562188314580663368240207299650082832384) 1393817842880620010418532721257742696710144) 309485009821345068724781056) 309485009821345068724781056) 309485009821345068724781056) 309485009821345068724781056) 309485009821345068724781056) 309485009821345068724781056) 309485009821345068724781056) 309485009821345068724781056) 309485009821345068724781056) 2398508826115424282617053184) 1083197534374707740536733696) 5261320725979531179706023936) 5068203855487903484589302087680) 5069441814416943031117047398400) 5068203855487903484589302087680) 4951835716158186110981242880) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0))) 1) ok Expression: (58 (417) (412 (418))) Translation: ((cos-58 cos-417) (cos-412 cos-418)) ok ; GATE testing alternate primer based on gates: COS_NOR circuit ; This section contains one or more representations of a circuit ; constructed using UNLESS gates. Needs elaboration... ; graphic representation : IMAGE_SRC=COS_NOR.gif ; Expression: (17 419 -1 70 (70 0 6 2 6 (16)) (70 0 8 2 8 (16)) (70 2 6 4 6 (16)) (70 2 8 4 8 (16)) (70 4 6 6 6 (16)) (70 4 8 6 8 (16)) (70 6 6 8 6 (16)) (70 6 8 8 8 (16)) (70 8 4 8 6 (16)) (70 8 6 8 8 (15)) (70 8 8 8 10 (15)) (70 8 10 10 10 (15)) (70 10 10 12 10 (15)) (70 12 10 14 10 (15)) (70 14 10 16 10 (15)) (70 16 10 18 10 (15)) (70 18 10 20 10 (15))) Translation: (begin (define cos-419 ((((((((((((((((((cos-51 17) ((((((cos-51 5) 0) 6) 2) 6) cos-true)) ((((((cos-51 5) 0) 8) 2) 8) cos-true)) ((((((cos-51 5) 2) 6) 4) 6) cos-true)) ((((((cos-51 5) 2) 8) 4) 8) cos-true)) ((((((cos-51 5) 4) 6) 6) 6) cos-true)) ((((((cos-51 5) 4) 8) 6) 8) cos-true)) ((((((cos-51 5) 6) 6) 8) 6) cos-true)) ((((((cos-51 5) 6) 8) 8) 8) cos-true)) ((((((cos-51 5) 8) 4) 8) 6) cos-true)) ((((((cos-51 5) 8) 6) 8) 8) cos-false)) ((((((cos-51 5) 8) 8) 8) 10) cos-false)) ((((((cos-51 5) 8) 10) 10) 10) cos-false)) ((((((cos-51 5) 10) 10) 12) 10) cos-false)) ((((((cos-51 5) 12) 10) 14) 10) cos-false)) ((((((cos-51 5) 14) 10) 16) 10) cos-false)) ((((((cos-51 5) 16) 10) 18) 10) cos-false)) ((((((cos-51 5) 18) 10) 20) 10) cos-false))) 1) ok Expression: (17 420 -1 386 125 169 -1 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70988433612780846483815379501056 70988433612780846483815379501056 70988433612780846483815379501056 70988433612780846483815379501056 70988433612780846483815379501056 70988433612780846483815379501056 70988433612780846483815379501056 70988433612780846483815379501056 70988433612780846483815379501056 157188674428300445785591197466624 70988433612780846483815379501056 91345246151024333285198564072017849318847283200 93491859435573384358354500990225589867828503117824 93514695747111140436605198230330676724171402117120 93491859435573384358354500990225589867828503117824 91345246151024313002788960420347425371595997184 20282409603651670423947251286016 20282409603651670423947251286016 20282409603651670423947251286016 20282409603651670423947251286016 20282409603651670423947251286016 20282409603651670423947251286016 20282409603651670423947251286016 20282409603651670423947251286016 20282409603651670423947251286016 157188674428300445785591197466624 70988433612780846483815379501056 91345246151024333285198564072017849318847283200 93491859435573384358354500990225589867828503117824 93514695747111140436605198230330676724171402117120 93491859435573384358354500990225589867828503117824 91345246151024313002788960420347425371595997184 20282409603651670423947251286016 20282409603651670423947251286016 20282409603651670423947251286016 20282409603651670423947251286016 20282409603651670423947251286016 20282409603651670423947251286016 20282409603651670423947251286016 20282409603651670423947251286016 20282409603651670423947251286016 157188674428300445785591197466624 70988433612780846483815379501056 20287361439367828610058232532992 7427753574237279166471870464 5069441814416943031117051591680 7427753574237279166471870464 4951835716158186110981246976 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) Translation: (begin (define cos-420 (((cos-386 125) 169) ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((cos-51 125) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 70988433612780846483815379501056) 70988433612780846483815379501056) 70988433612780846483815379501056) 70988433612780846483815379501056) 70988433612780846483815379501056) 70988433612780846483815379501056) 70988433612780846483815379501056) 70988433612780846483815379501056) 70988433612780846483815379501056) 157188674428300445785591197466624) 70988433612780846483815379501056) 91345246151024333285198564072017849318847283200) 93491859435573384358354500990225589867828503117824) 93514695747111140436605198230330676724171402117120) 93491859435573384358354500990225589867828503117824) 91345246151024313002788960420347425371595997184) 20282409603651670423947251286016) 20282409603651670423947251286016) 20282409603651670423947251286016) 20282409603651670423947251286016) 20282409603651670423947251286016) 20282409603651670423947251286016) 20282409603651670423947251286016) 20282409603651670423947251286016) 20282409603651670423947251286016) 157188674428300445785591197466624) 70988433612780846483815379501056) 91345246151024333285198564072017849318847283200) 93491859435573384358354500990225589867828503117824) 93514695747111140436605198230330676724171402117120) 93491859435573384358354500990225589867828503117824) 91345246151024313002788960420347425371595997184) 20282409603651670423947251286016) 20282409603651670423947251286016) 20282409603651670423947251286016) 20282409603651670423947251286016) 20282409603651670423947251286016) 20282409603651670423947251286016) 20282409603651670423947251286016) 20282409603651670423947251286016) 20282409603651670423947251286016) 157188674428300445785591197466624) 70988433612780846483815379501056) 20287361439367828610058232532992) 7427753574237279166471870464) 5069441814416943031117051591680) 7427753574237279166471870464) 4951835716158186110981246976) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0))) 1) ok Expression: (58 (419) (412 (420))) Translation: ((cos-58 cos-419) (cos-412 cos-420)) ok ; GATE testing alternate primer based on gates: COS_OSC circuit ; This section contains one or more representations of a circuit ; constructed using UNLESS gates. Needs elaboration... ; graphic representation : IMAGE_SRC=COS_OSC.gif ; Expression: (17 421 -1 70 (70 4 8 6 8 (16)) (70 6 8 8 8 (16)) (70 8 6 8 8 (16)) (70 10 6 8 6 (16)) (70 8 8 10 8 (15)) (70 12 6 10 6 (15)) (70 10 8 12 8 (15)) (70 12 8 12 6 (15)) (70 12 8 14 8 (15)) (70 14 8 16 8 (15))) Translation: (begin (define cos-421 (((((((((((cos-51 10) ((((((cos-51 5) 4) 8) 6) 8) cos-true)) ((((((cos-51 5) 6) 8) 8) 8) cos-true)) ((((((cos-51 5) 8) 6) 8) 8) cos-true)) ((((((cos-51 5) 10) 6) 8) 6) cos-true)) ((((((cos-51 5) 8) 8) 10) 8) cos-false)) ((((((cos-51 5) 12) 6) 10) 6) cos-false)) ((((((cos-51 5) 10) 8) 12) 8) cos-false)) ((((((cos-51 5) 12) 8) 12) 6) cos-false)) ((((((cos-51 5) 12) 8) 14) 8) cos-false)) ((((((cos-51 5) 14) 8) 16) 8) cos-false))) 1) ok Expression: (17 422 -1 386 120 169 -1 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1267669943041343235563498504192 5068184549273688347637400469504 10138883626473243261001028075520 5068184549273688347637400469504 1267669947763709718433143717888 70988433629309129173859137748992 70988433649379186726055129907200 70988433617503212966685024714752 70988433617503212966685024714752 70988433617503212966685024714752 70988433617503212966685024714752 70988433617503212966685024714752 70988433617503212966685024714752 70988433617503212966685024714752 157188674433022812268460842680320 70988433617503212966685024714752 21267992738473751761016306178470182912 21767769803720879488001844258504051785728 21773086801895671626942846934210345697280 21767769803720879488001844258504051785728 21267972456064148109345882231218896896 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) Translation: (begin (define cos-422 (((cos-386 120) 169) (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((cos-51 120) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 1267669943041343235563498504192) 5068184549273688347637400469504) 10138883626473243261001028075520) 5068184549273688347637400469504) 1267669947763709718433143717888) 70988433629309129173859137748992) 70988433649379186726055129907200) 70988433617503212966685024714752) 70988433617503212966685024714752) 70988433617503212966685024714752) 70988433617503212966685024714752) 70988433617503212966685024714752) 70988433617503212966685024714752) 70988433617503212966685024714752) 157188674433022812268460842680320) 70988433617503212966685024714752) 21267992738473751761016306178470182912) 21767769803720879488001844258504051785728) 21773086801895671626942846934210345697280) 21767769803720879488001844258504051785728) 21267972456064148109345882231218896896) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0))) 1) ok Expression: (58 (421) (412 (422))) Translation: ((cos-58 cos-421) (cos-412 cos-422)) ok ; GATE testing alternate primer based on gates: COS_SR circuit ; This section contains one or more representations of a circuit ; constructed using UNLESS gates. Needs elaboration... ; graphic representation : IMAGE_SRC=COS_SR.gif ; Expression: (17 423 -1 70 (70 0 2 2 2 (16)) (70 0 8 2 8 (16)) (70 2 2 4 2 (16)) (70 2 8 4 8 (16)) (70 4 2 6 2 (16)) (70 4 6 6 6 (16)) (70 4 8 6 8 (16)) (70 6 8 6 6 (16)) (70 6 2 8 2 (16)) (70 6 6 8 6 (15)) (70 8 4 8 6 (15)) (70 8 2 10 2 (16)) (70 10 4 8 4 (15)) (70 8 6 10 6 (15)) (70 10 6 10 8 (15)) (70 10 2 12 2 (16)) (70 12 4 10 4 (15)) (70 10 6 12 6 (15)) (70 10 8 12 8 (15)) (70 12 6 12 4 (15)) (70 12 2 14 2 (16)) (70 14 4 12 4 (15)) (70 12 8 14 8 (15)) (70 14 2 14 4 (16)) (70 16 4 14 4 (16)) (70 14 8 16 8 (15)) (70 16 8 18 8 (15)) (70 18 8 20 8 (15))) Translation: (begin (define cos-423 (((((((((((((((((((((((((((((cos-51 28) ((((((cos-51 5) 0) 2) 2) 2) cos-true)) ((((((cos-51 5) 0) 8) 2) 8) cos-true)) ((((((cos-51 5) 2) 2) 4) 2) cos-true)) ((((((cos-51 5) 2) 8) 4) 8) cos-true)) ((((((cos-51 5) 4) 2) 6) 2) cos-true)) ((((((cos-51 5) 4) 6) 6) 6) cos-true)) ((((((cos-51 5) 4) 8) 6) 8) cos-true)) ((((((cos-51 5) 6) 8) 6) 6) cos-true)) ((((((cos-51 5) 6) 2) 8) 2) cos-true)) ((((((cos-51 5) 6) 6) 8) 6) cos-false)) ((((((cos-51 5) 8) 4) 8) 6) cos-false)) ((((((cos-51 5) 8) 2) 10) 2) cos-true)) ((((((cos-51 5) 10) 4) 8) 4) cos-false)) ((((((cos-51 5) 8) 6) 10) 6) cos-false)) ((((((cos-51 5) 10) 6) 10) 8) cos-false)) ((((((cos-51 5) 10) 2) 12) 2) cos-true)) ((((((cos-51 5) 12) 4) 10) 4) cos-false)) ((((((cos-51 5) 10) 6) 12) 6) cos-false)) ((((((cos-51 5) 10) 8) 12) 8) cos-false)) ((((((cos-51 5) 12) 6) 12) 4) cos-false)) ((((((cos-51 5) 12) 2) 14) 2) cos-true)) ((((((cos-51 5) 14) 4) 12) 4) cos-false)) ((((((cos-51 5) 12) 8) 14) 8) cos-false)) ((((((cos-51 5) 14) 2) 14) 4) cos-true)) ((((((cos-51 5) 16) 4) 14) 4) cos-true)) ((((((cos-51 5) 14) 8) 16) 8) cos-false)) ((((((cos-51 5) 16) 8) 18) 8) cos-false)) ((((((cos-51 5) 18) 8) 20) 8) cos-false))) 1) ok Expression: (17 424 -1 386 88 169 -1 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91345246151024313007740796136505593890122760192 93491859435573384363422704845713475346540645056512 93514695747111140441674640044747601745013175746560 93491859435573384363422704845713475346540645056512 91345246151024313007740796136505593890122760192 252201579132747776 252201579132747776 252201579132747776 252201579132747776 252201579132747776 252201579132747776 252201579132747776 252201579132747776 252201579132747776 558446353793941504 252201579132747776 1267669943336567701936516628480 3803009830009491427830970449920 10138883628833886061684473200640 3803009830009491427830970449920 1267669948058862127212123914240 20282409620179953113991009533952 20282409640250010666187001692160 20282409608374036906816896499712 20282409608374036906816896499712 20282409608374036906816896499712 20282409608374036906816896499712 20282409608374036906816896499712 20282409608374036906816896499712 20282409608374036906816896499712 157188674433022812268460842680320 70988433617503212966685024714752 21267992738473751759863367081677291520 21767438145759040575885342464405833515008 21773086801895671625762525533868623134720 21767438145759040575885342464405833515008 22597200451849063981096750194706350080 4652297985556690564984669779705987072 10301516967642583024825849785897451520 4652297985556690564984669779705987072 4652297985556690564984669779705987072 4652297985556690564984669779705987072 4652297985556690564984669779705987072 4652297985556690564984669779705987072 4652297985556690564984669779705987072 4652297985556690564984669779705987072 4652297987645714381278748993598259200 4652297986330403089538032451517939712 91345246151023988484544862562458652295684952064 93491859435573052213614831703809252305158520444928 93514695747110808210735967769512443273600475069440 93491859435573052213614831703809252305158520444928 91345246151023988484235377552637307226960171008 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) Translation: (begin (define cos-424 (((cos-386 88) 169) (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((cos-51 88) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 91345246151024313007740796136505593890122760192) 93491859435573384363422704845713475346540645056512) 93514695747111140441674640044747601745013175746560) 93491859435573384363422704845713475346540645056512) 91345246151024313007740796136505593890122760192) 252201579132747776) 252201579132747776) 252201579132747776) 252201579132747776) 252201579132747776) 252201579132747776) 252201579132747776) 252201579132747776) 252201579132747776) 558446353793941504) 252201579132747776) 1267669943336567701936516628480) 3803009830009491427830970449920) 10138883628833886061684473200640) 3803009830009491427830970449920) 1267669948058862127212123914240) 20282409620179953113991009533952) 20282409640250010666187001692160) 20282409608374036906816896499712) 20282409608374036906816896499712) 20282409608374036906816896499712) 20282409608374036906816896499712) 20282409608374036906816896499712) 20282409608374036906816896499712) 20282409608374036906816896499712) 157188674433022812268460842680320) 70988433617503212966685024714752) 21267992738473751759863367081677291520) 21767438145759040575885342464405833515008) 21773086801895671625762525533868623134720) 21767438145759040575885342464405833515008) 22597200451849063981096750194706350080) 4652297985556690564984669779705987072) 10301516967642583024825849785897451520) 4652297985556690564984669779705987072) 4652297985556690564984669779705987072) 4652297985556690564984669779705987072) 4652297985556690564984669779705987072) 4652297985556690564984669779705987072) 4652297985556690564984669779705987072) 4652297985556690564984669779705987072) 4652297987645714381278748993598259200) 4652297986330403089538032451517939712) 91345246151023988484544862562458652295684952064) 93491859435573052213614831703809252305158520444928) 93514695747110808210735967769512443273600475069440) 93491859435573052213614831703809252305158520444928) 91345246151023988484235377552637307226960171008) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0))) 1) ok Expression: (58 (423) (412 (424))) Translation: ((cos-58 cos-423) (cos-412 cos-424)) ok ; GATE testing alternate primer based on gates: COS_D circuit ; This section contains one or more representations of a circuit ; constructed using UNLESS gates. Needs elaboration... ; graphic representation : IMAGE_SRC=COS_D.gif ; Expression: (17 425 -1 70 (70 0 2 2 2 (16)) (70 0 6 2 6 (16)) (70 2 2 4 2 (16)) (70 2 6 4 6 (16)) (70 4 2 6 2 (16)) (70 4 6 6 6 (16)) (70 6 2 8 2 (16)) (70 6 6 8 6 (16)) (70 8 2 10 2 (16)) (70 8 6 10 6 (16)) (70 10 6 10 4 (16)) (70 10 10 10 8 (16)) (70 10 2 12 2 (16)) (70 10 4 12 4 (16)) (70 10 6 12 6 (16)) (70 10 8 12 8 (16)) (70 12 10 10 10 (16)) (70 12 0 12 2 (16)) (70 12 2 12 4 (15)) (70 12 6 12 8 (16)) (70 12 10 12 12 (16)) (70 12 4 14 4 (16)) (70 12 8 14 8 (15)) (70 14 10 12 10 (16)) (70 12 12 14 12 (16)) (70 14 0 14 2 (16)) (70 14 2 14 4 (16)) (70 14 4 14 6 (15)) (70 14 6 14 8 (15)) (70 14 8 14 10 (15)) (70 16 10 14 10 (16)) (70 14 12 16 12 (16)) (70 16 12 18 12 (16)) (70 18 12 20 12 (16))) Translation: (begin (define cos-425 (((((((((((((((((((((((((((((((((((cos-51 34) ((((((cos-51 5) 0) 2) 2) 2) cos-true)) ((((((cos-51 5) 0) 6) 2) 6) cos-true)) ((((((cos-51 5) 2) 2) 4) 2) cos-true)) ((((((cos-51 5) 2) 6) 4) 6) cos-true)) ((((((cos-51 5) 4) 2) 6) 2) cos-true)) ((((((cos-51 5) 4) 6) 6) 6) cos-true)) ((((((cos-51 5) 6) 2) 8) 2) cos-true)) ((((((cos-51 5) 6) 6) 8) 6) cos-true)) ((((((cos-51 5) 8) 2) 10) 2) cos-true)) ((((((cos-51 5) 8) 6) 10) 6) cos-true)) ((((((cos-51 5) 10) 6) 10) 4) cos-true)) ((((((cos-51 5) 10) 10) 10) 8) cos-true)) ((((((cos-51 5) 10) 2) 12) 2) cos-true)) ((((((cos-51 5) 10) 4) 12) 4) cos-true)) ((((((cos-51 5) 10) 6) 12) 6) cos-true)) ((((((cos-51 5) 10) 8) 12) 8) cos-true)) ((((((cos-51 5) 12) 10) 10) 10) cos-true)) ((((((cos-51 5) 12) 0) 12) 2) cos-true)) ((((((cos-51 5) 12) 2) 12) 4) cos-false)) ((((((cos-51 5) 12) 6) 12) 8) cos-true)) ((((((cos-51 5) 12) 10) 12) 12) cos-true)) ((((((cos-51 5) 12) 4) 14) 4) cos-true)) ((((((cos-51 5) 12) 8) 14) 8) cos-false)) ((((((cos-51 5) 14) 10) 12) 10) cos-true)) ((((((cos-51 5) 12) 12) 14) 12) cos-true)) ((((((cos-51 5) 14) 0) 14) 2) cos-true)) ((((((cos-51 5) 14) 2) 14) 4) cos-true)) ((((((cos-51 5) 14) 4) 14) 6) cos-false)) ((((((cos-51 5) 14) 6) 14) 8) cos-false)) ((((((cos-51 5) 14) 8) 14) 10) cos-false)) ((((((cos-51 5) 16) 10) 14) 10) cos-true)) ((((((cos-51 5) 14) 12) 16) 12) cos-true)) ((((((cos-51 5) 16) 12) 18) 12) cos-true)) ((((((cos-51 5) 18) 12) 20) 12) cos-true))) 1) ok Expression: (17 426 -1 386 109 169 -1 70 0 0 0 16528534891622890995712 16528534891622890995712 16528534891622890995712 16528534891622890995712 16528534891622890995712 16528534891622890995712 16528534891622890995712 16528534891622890995712 16528534891622890995712 36598898688593544347648 16528534891622890995712 91345246151024313007740800857791212849199054848 93491859435573384363422704844533460186575537176576 93514695747111140441674640043567298354671916154880 93491859435573384363422704844533460186575537176576 91345246151024313007740796135352672385515913216 4722618684448777961472 4722618684448777961472 4722618684448777961472 4722618684448777961472 4722618684448777961472 4722618684448777961472 4722618684448777961472 4722618684448777961472 4722618684448777961472 36598898688593544347648 16528534891622890995712 80281455187882613407744 77334653538633275127365632 77353543292795129859932160 77334653538633275127365632 309560568837992487655047168 1083197534446765334574661632 2398508826187481876654981120 1083197534446765334574661632 1083197534446765334574661632 1083197534446765334574661632 1083197534446765334574661632 1083197534446765334574661632 1083197534446765334574661632 1083197534446765334574661632 1083197534933154094330675200 1083197534626909319669481472 91345246151024313007740796135424729979553841152 93491859435573384363422704844533460186575537176576 93514695747111140441674640043567298354671916154880 93491859435573384363422704844533460186575537176576 91345246151024313007740796135352672385515913216 16528354747637796175872 16528354747637796175872 16528354747637796175872 16528354747637796175872 16528354747637796175872 16528354747637796175872 16528354747637796175872 16528354747637796175872 16528354747637796175872 36598898688593544347648 16528534891622890995712 80281455187882613407744 77333475252855566929756160 77353543292795129859932160 77333475252855566929756160 309560568837992487655047168 1083197534446765334574661632 2398508826187481876654981120 1083197534446765334574661632 1083197534446765334574661632 1083197534446765334574661632 1083197534446765334574661632 1083197534446765334574661632 1083197534446765334574661632 1083197534446765334574661632 1083197534933154094330675200 1083197534626909319669481472 19343108338300439813423104 77334653556638877543825408 154707086621610260645806080 77334653556638877543825408 19343108266242845775495168 16528282690043758247936 16528282690043758247936 16528282690043758247936 16528282690043758247936 16528282690043758247936 16528282690043758247936 16528282690043758247936 16528282690043758247936 16528282690043758247936 36598340242239750406144 16528282690043758247936 4723519421966706544640 1180033165842272221184 1180321400616537553920 1180033165842272221184 1152939097061330944 0 0 0 0 0 0 0 0 0 0) Translation: (begin (define cos-426 (((cos-386 109) 169) ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((cos-51 109) 0) 0) 0) 16528534891622890995712) 16528534891622890995712) 16528534891622890995712) 16528534891622890995712) 16528534891622890995712) 16528534891622890995712) 16528534891622890995712) 16528534891622890995712) 16528534891622890995712) 36598898688593544347648) 16528534891622890995712) 91345246151024313007740800857791212849199054848) 93491859435573384363422704844533460186575537176576) 93514695747111140441674640043567298354671916154880) 93491859435573384363422704844533460186575537176576) 91345246151024313007740796135352672385515913216) 4722618684448777961472) 4722618684448777961472) 4722618684448777961472) 4722618684448777961472) 4722618684448777961472) 4722618684448777961472) 4722618684448777961472) 4722618684448777961472) 4722618684448777961472) 36598898688593544347648) 16528534891622890995712) 80281455187882613407744) 77334653538633275127365632) 77353543292795129859932160) 77334653538633275127365632) 309560568837992487655047168) 1083197534446765334574661632) 2398508826187481876654981120) 1083197534446765334574661632) 1083197534446765334574661632) 1083197534446765334574661632) 1083197534446765334574661632) 1083197534446765334574661632) 1083197534446765334574661632) 1083197534446765334574661632) 1083197534933154094330675200) 1083197534626909319669481472) 91345246151024313007740796135424729979553841152) 93491859435573384363422704844533460186575537176576) 93514695747111140441674640043567298354671916154880) 93491859435573384363422704844533460186575537176576) 91345246151024313007740796135352672385515913216) 16528354747637796175872) 16528354747637796175872) 16528354747637796175872) 16528354747637796175872) 16528354747637796175872) 16528354747637796175872) 16528354747637796175872) 16528354747637796175872) 16528354747637796175872) 36598898688593544347648) 16528534891622890995712) 80281455187882613407744) 77333475252855566929756160) 77353543292795129859932160) 77333475252855566929756160) 309560568837992487655047168) 1083197534446765334574661632) 2398508826187481876654981120) 1083197534446765334574661632) 1083197534446765334574661632) 1083197534446765334574661632) 1083197534446765334574661632) 1083197534446765334574661632) 1083197534446765334574661632) 1083197534446765334574661632) 1083197534933154094330675200) 1083197534626909319669481472) 19343108338300439813423104) 77334653556638877543825408) 154707086621610260645806080) 77334653556638877543825408) 19343108266242845775495168) 16528282690043758247936) 16528282690043758247936) 16528282690043758247936) 16528282690043758247936) 16528282690043758247936) 16528282690043758247936) 16528282690043758247936) 16528282690043758247936) 16528282690043758247936) 36598340242239750406144) 16528282690043758247936) 4723519421966706544640) 1180033165842272221184) 1180321400616537553920) 1180033165842272221184) 1152939097061330944) 0) 0) 0) 0) 0) 0) 0) 0) 0) 0))) 1) ok Expression: (58 (425) (412 (426))) Translation: ((cos-58 cos-425) (cos-412 cos-426)) ok ; GATE probing networks of unless gates Expression: (17 427 -1 0 365 -1 0 303 -1 0 157 -1 11 428 (56 (365) (303)) (82 (0 39 (18 (58 (39) (428)) (70 (56 (39) 0) (56 (39) 1) (56 (39) 2) (56 (39) 3) (157)) (39))) (365))) Translation: (begin (define cos-427 (lambda (cos-365) (lambda (cos-303) (lambda (cos-157) ((lambda (cos-428) ((cos-82 (lambda (cos-39) (if (tish ((cos-58 cos-39) cos-428)) ((((((cos-51 5) ((cos-56 cos-39) 0)) ((cos-56 cos-39) 1)) ((cos-56 cos-39) 2)) ((cos-56 cos-39) 3)) cos-157) cos-39))) cos-365)) ((cos-56 cos-365) cos-303)))))) 1) ok Expression: (17 429 -1 0 365 -1 0 303 -1 11 430 (55 -1 365) -1 11 428 (56 (365) -1 7 (7 (430) 1) (303)) -1 56 (428) 4) Translation: (begin (define cos-429 (lambda (cos-365) (lambda (cos-303) ((lambda (cos-430) ((lambda (cos-428) ((cos-56 cos-428) 4)) ((cos-56 cos-365) ((cos-- ((cos-- cos-430) 1)) cos-303)))) (cos-55 cos-365))))) 1) ok Expression: (17 431 -1 0 365 -1 0 432 -1 0 433 (18 (3 (432) 0) (431 (380 (433 -1 365)) (7 (432) 1) (433)) (365))) Translation: (begin (define cos-431 (lambda (cos-365) (lambda (cos-432) (lambda (cos-433) (if (tish ((cos-> cos-432) 0)) (((cos-431 (cos-380 (cos-433 cos-365))) ((cos-- cos-432) 1)) cos-433) cos-365))))) 1) ok Expression: (17 434 -1 0 365 -1 0 433 -1 431 (365) (55 -1 365) (433)) Translation: (begin (define cos-434 (lambda (cos-365) (lambda (cos-433) (((cos-431 cos-365) (cos-55 cos-365)) cos-433)))) 1) ok ; test cos_not gate Expression: (17 435 -1 0 37 -1 11 107 (413) -1 11 107 (434 (107) (0 107 (427 (107) 0 (37)))) -1 429 (107) 0) Translation: (begin (define cos-435 (lambda (cos-37) ((lambda (cos-107) ((lambda (cos-107) ((cos-429 cos-107) 0)) ((cos-434 cos-107) (lambda (cos-107) (((cos-427 cos-107) 0) cos-37))))) cos-413))) 1) ok Expression: (2 (15) -1 435 -1 16) Translation: ((cos-= cos-false) (cos-435 cos-true)) ok Expression: (2 (16) -1 435 -1 15) Translation: ((cos-= cos-true) (cos-435 cos-false)) ok ; test cos_and gate Expression: (17 436 -1 0 37 -1 0 36 -1 11 107 (415) -1 11 107 (434 (107) (0 107 (427 (427 (107) 0 (37)) 1 (36)))) -1 429 (107) 0) Translation: (begin (define cos-436 (lambda (cos-37) (lambda (cos-36) ((lambda (cos-107) ((lambda (cos-107) ((cos-429 cos-107) 0)) ((cos-434 cos-107) (lambda (cos-107) (((cos-427 (((cos-427 cos-107) 0) cos-37)) 1) cos-36))))) cos-415)))) 1) ok Expression: (2 (15) -1 436 (15) (15)) Translation: ((cos-= cos-false) ((cos-436 cos-false) cos-false)) ok Expression: (2 (15) -1 436 (15) (16)) Translation: ((cos-= cos-false) ((cos-436 cos-false) cos-true)) ok Expression: (2 (15) -1 436 (16) (15)) Translation: ((cos-= cos-false) ((cos-436 cos-true) cos-false)) ok Expression: (2 (16) -1 436 (16) (16)) Translation: ((cos-= cos-true) ((cos-436 cos-true) cos-true)) ok ; this code is more awkward than it needs to be - ; should make circuits mutable ; NOTE end of part 3, start of part 4 ; The following parts of the message start ; to introduce some self-reference into the message Expression: (1 437) Translation: (cos-intro 437) ok ; SELF a mechanism for referring to parts of the message ; Many choices for how to do this. ; Could do it without special machinery by using the ; standard A-B trick for giving e.g. a Turing machine ; access to its own description. ; Instead, will simply introduce a ''primer'' function ; that gives access to every statement made so far ; (question: should future statements be included? ; tentatively assume YES: will simplify ; discussion of creating modified copies of the ; complete message). ; For now, assume primer is a list of statements, ; with each statement being a list in the same ; form as ''translate'' functions expect. ; This means that there is, for now, no ; distinction between unary or binary, ; and the ''/'' structure is expanded. Expression: (1 35) Translation: (cos-intro 35) ok ; this line is referred to later - change/move carefully Expression: (58 (56 (35) 0) (70 1 1)) Translation: ((cos-58 ((cos-56 cos-primer) 0)) (((cos-51 2) 1) 1)) ok Expression: (58 (56 (35) 1) (70 1 2)) Translation: ((cos-58 ((cos-56 cos-primer) 1)) (((cos-51 2) 1) 2)) ok Expression: (58 (56 (35) 2) (70 1 3)) Translation: ((cos-58 ((cos-56 cos-primer) 2)) (((cos-51 2) 1) 3)) ok Expression: (11 66 (67 (35) (70 1 35) (0 37 0)) (58 (56 (35) (5 (66) 1)) (70 58 (70 56 (70 35) 0) (70 70 1 1)))) Translation: ((lambda (cos-66) ((cos-58 ((cos-56 cos-primer) ((cos-+ cos-66) 1))) ((((cos-51 3) 58) ((((cos-51 3) 56) ((cos-51 1) 35)) 0)) ((((cos-51 3) 70) 1) 1)))) (((cos-67 cos-primer) (((cos-51 2) 1) 35)) (lambda (cos-37) 0))) ok ; Now, we could return to the MUD, simulate an agent A ; transferring a copy of the primer to another agent B, ; and then show B making a modified copy of that primer ; and passing it back to A. ; We could also show agents experimenting with the ; primer in various ways. -- done ;Unspecified return value 1 ]=> End of input stream reached Happy Happy Joy Joy.