# Author: Paul Fitzpatrick, paulfitz@csail.mit.edu # Copyright (c) 2005 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, go through some primes, etc. # There is some syntax around the numbers, but that doesn't # need to be understood at this point. # 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. 00 010; 00 0110; 00 01110; 00 011110; 00 0111110; 00 01111110; 00 011111110; 00 0111111110; 00 01111111110; 00 011111111110; 00 0111111111110; 00 01111111111110; 00 011111111111110; 00 0111111111111110; 00 01111111111111110; 00 011111111111111110; 00 0110; 00 01110; 00 0111110; 00 011111110; 00 0111111111110; 00 011111111111110; 00 010; 00 011110; 00 01111111110; 00 011111111111111110; # 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. 0110 010 010; 0110 0110 0110; 0110 01110 01110; 0110 011110 011110; 0110 0111110 0111110; 0110 01111110 01111110; 0110 011111110 011111110; 0110 0111111110 0111111110; 0110 010 010; 0110 01111110 01111110; 0110 0110 0110; # MATH now introduce other relational operators # After this lesson, it should be clear what contexts # < > and = are appropriate in. # drive the lesson home 0110 010 010; 01110 0110 010; 01110 01110 010; 01110 011110 010; 010 010 0110; 0110 0110 0110; 01110 01110 0110; 01110 011110 0110; 010 010 01110; 010 0110 01110; 0110 01110 01110; 01110 011110 01110; 010 010 011110; 010 0110 011110; 010 01110 011110; 0110 011110 011110; 01110 010 00; 01110 01111111110 0110; 01110 01111110 00; 01110 0110 00; 01110 0111111110 0110; 01110 011110 010; 01110 0110 00; 01110 011111111110 010; 01110 01111110 010; 01110 01111111110 010; 01110 011111110 010; 010 00 010; 010 01110 011111111110; 010 011110 01111111110; 010 0110 011110; 010 010 011111110; 010 00 011111111110; 010 00 0110; 010 00 0110; 010 010 01110; 010 0110 0111110; 010 010 011110; # switch to binary labelling for commands 2 010 010; 3 0110 010; 3 01110 010; 3 011110 010; 1 010 0110; 2 0110 0110; 3 01110 0110; 3 011110 0110; 1 010 01110; 1 0110 01110; 2 01110 01110; 3 011110 01110; 1 010 011110; 1 0110 011110; 1 01110 011110; 2 011110 011110; # a few more random examples 1 01110 011110; 2 011110 011110; 1 010 0111110; 3 011110 00; 3 0111110 011110; 1 0110 01110; 3 0110 010; 3 0111110 010; 2 01110 01110; 2 01110 01110; 3 010 00; # MATH introduce the NOT logical operator 0 4; 2 00 00; 4 -1 1 00 00; 4 -1 3 00 00; 2 011110 011110; 4 -1 1 011110 011110; 4 -1 3 011110 011110; 2 01111110 01111110; 4 -1 1 01111110 01111110; 4 -1 3 01111110 01111110; 2 0110 0110; 4 -1 1 0110 0110; 4 -1 3 0110 0110; 2 01110 01110; 4 -1 1 01110 01110; 4 -1 3 01110 01110; 4 -1 2 01110 011111111110; 1 01110 011111111110; 4 -1 3 01110 011111111110; 4 -1 2 0111110 011111110; 1 0111110 011111110; 4 -1 3 0111110 011111110; 4 -1 2 010 0110; 1 010 0110; 4 -1 3 010 0110; 4 -1 2 00 0111110; 1 00 0111110; 4 -1 3 00 0111110; 4 -1 2 0111111110 0111111111111110; 1 0111111110 0111111111111110; 4 -1 3 0111111110 0111111111111110; 4 -1 2 0111111111110 01111110; 3 0111111111110 01111110; 4 -1 1 0111111111110 01111110; 4 -1 2 01111111111110 0110; 3 01111111111110 0110; 4 -1 1 01111111111110 0110; 4 -1 2 011111111110 011111110; 3 011111111110 011111110; 4 -1 1 011111111110 011111110; 4 -1 2 011110 00; 3 011110 00; 4 -1 1 011110 00; 4 -1 2 011111111111111110 01111111110; 3 011111111111111110 01111111110; 4 -1 1 011111111111111110 01111111110; # MATH introduce addition 0 10; 2 0110 -1 10 00 0110; 2 0111110 -1 10 011110 010; 2 0110 -1 10 0110 00; 2 011110 -1 10 00 011110; 2 011110 -1 10 01110 010; 2 01110 -1 10 010 0110; 2 00 -1 10 00 00; 2 011110 -1 10 011110 00; 2 01110 -1 10 0110 010; 2 011110 -1 10 011110 00; # MATH introduce subtraction 0 11; 2 00 -1 11 0110 0110; 2 011110 -1 11 0111110 010; 2 0110 -1 11 0110 00; 2 00 -1 11 011110 011110; 2 01110 -1 11 011110 010; 2 010 -1 11 01110 0110; 2 00 -1 11 00 00; 2 011110 -1 11 011110 00; 2 0110 -1 11 01110 010; 2 011110 -1 11 011110 00; # MATH introduce multiplication 0 9; 2 00 -1 9 00 00; 2 00 -1 9 00 010; 2 00 -1 9 00 0110; 2 00 -1 9 00 01110; 2 00 -1 9 010 00; 2 010 -1 9 010 010; 2 0110 -1 9 010 0110; 2 01110 -1 9 010 01110; 2 00 -1 9 0110 00; 2 0110 -1 9 0110 010; 2 011110 -1 9 0110 0110; 2 01111110 -1 9 0110 01110; 2 00 -1 9 01110 00; 2 01110 -1 9 01110 010; 2 01111110 -1 9 01110 0110; 2 01111111110 -1 9 01110 01110; 2 00 -1 9 00 010; 2 01110 -1 9 01110 010; 2 00 -1 9 0110 00; 2 00 -1 9 00 01110; 2 01110 -1 9 01110 010; 2 0110 -1 9 010 0110; 2 00 -1 9 00 00; 2 00 -1 9 01110 00; 2 00 -1 9 0110 00; 2 00 -1 9 01110 00; # 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 should be delayed? 2 (:) 010; 2 (:.) 0110; 2 (:..) 011110; 2 (:...) 0111111110; 2 (:....) 011111111111111110; 2 (.) 00; 2 (:) 010; 2 (:.) 0110; 2 (::) 01110; 2 (:..) 011110; 2 (:.:) 0111110; 2 (::.) 01111110; 2 (:::) 011111110; 2 (:...) 0111111110; 2 (:..:) 01111111110; 2 (:.:.) 011111111110; 2 (:.::) 0111111111110; 2 (::..) 01111111111110; 2 (::.:) 011111111111110; 2 (:::.) 0111111111111110; 2 (::::) 01111111111111110; 2 (.) 00; 2 (:::) 011111110; 2 (::.:) 011111111111110; 2 (:.:) 0111110; 2 (:..:) 01111111110; 2 (.) 00; 2 (::) 01110; 2 (::::) 01111111111111110; 2 (::..) 01111111111110; 2 (:.:) 0111110; 2 (:.:) 0111110; 2 (:..:) 01111111110; 2 (:.) 0110; 2 (:) 010; 2 (::::) 01111111111111110; 2 (:.) 0110; 2 0111110 -1 10 011110 010; 2 (:.:) -1 10 (:..) (:); 2 011111110 -1 10 01111110 010; 2 (:::) -1 10 (::.) (:); 2 0111110 -1 10 011110 010; 2 (:.:) -1 10 (:..) (:); 2 011110 -1 10 00 011110; 2 (:..) -1 10 (.) (:..); 2 01111111110 -1 10 011111110 0110; 2 (:..:) -1 10 (:::) (:.); 2 0111111111110 -1 10 011111110 011110; 2 (:.::) -1 10 (:::) (:..); 2 011111111110 -1 10 01110 011111110; 2 (:.:.) -1 10 (::) (:::); 2 01111110 -1 10 0111110 010; 2 (::.) -1 10 (:.:) (:); 2 011110 -1 9 011110 010; 2 (:..) -1 9 (:..) (:); 2 011110 -1 9 010 011110; 2 (:..) -1 9 (:) (:..); 2 011110 -1 9 010 011110; 2 (:..) -1 9 (:) (:..); 2 01111110 -1 9 0110 01110; 2 (::.) -1 9 (:.) (::); 2 01111110 -1 9 0110 01110; 2 (::.) -1 9 (:.) (::); 2 011110 -1 9 0110 0110; 2 (:..) -1 9 (:.) (:.); 2 01111111110 -1 9 01110 01110; 2 (:..:) -1 9 (::) (::); 2 011111111111111110 -1 9 011110 011110; 2 (:....) -1 9 (:..) (:..); # MATH show local assignment 14 20 0 -1 2 (20) 0; 14 20 1 -1 2 (20) 1; 14 20 2 -1 2 (20) 2; 14 21 0 -1 2 (21) 0; 14 21 1 -1 2 (21) 1; 14 21 2 -1 2 (21) 2; 14 22 0 -1 2 (22) 0; 14 22 1 -1 2 (22) 1; 14 22 2 -1 2 (22) 2; 2 0 (14 20 0 (20)); 2 0 (14 20 0 -1 20); 2 0 -1 14 20 0 -1 20; 2 20 -1 14 20 0 20; 2 5 -1 14 20 0 5; 2 5 -1 14 20 0 -1 14 23 5 -1 23; 2 23 -1 14 20 0 -1 14 23 5 23; 2 1 (14 20 1 (20)); 2 1 (14 20 1 -1 20); 2 1 -1 14 20 1 -1 20; 2 20 -1 14 20 1 20; 2 5 -1 14 20 1 5; 2 5 -1 14 20 1 -1 14 23 5 -1 23; 2 23 -1 14 20 1 -1 14 23 5 23; 2 2 (14 20 2 (20)); 2 2 (14 20 2 -1 20); 2 2 -1 14 20 2 -1 20; 2 20 -1 14 20 2 20; 2 5 -1 14 20 2 5; 2 5 -1 14 20 2 -1 14 23 5 -1 23; 2 23 -1 14 20 2 -1 14 23 5 23; 2 0 (14 21 0 (21)); 2 0 (14 21 0 -1 21); 2 0 -1 14 21 0 -1 21; 2 21 -1 14 21 0 21; 2 5 -1 14 21 0 5; 2 5 -1 14 21 0 -1 14 23 5 -1 23; 2 23 -1 14 21 0 -1 14 23 5 23; 2 1 (14 21 1 (21)); 2 1 (14 21 1 -1 21); 2 1 -1 14 21 1 -1 21; 2 21 -1 14 21 1 21; 2 5 -1 14 21 1 5; 2 5 -1 14 21 1 -1 14 23 5 -1 23; 2 23 -1 14 21 1 -1 14 23 5 23; 2 2 (14 21 2 (21)); 2 2 (14 21 2 -1 21); 2 2 -1 14 21 2 -1 21; 2 21 -1 14 21 2 21; 2 5 -1 14 21 2 5; 2 5 -1 14 21 2 -1 14 23 5 -1 23; 2 23 -1 14 21 2 -1 14 23 5 23; 2 0 (14 22 0 (22)); 2 0 (14 22 0 -1 22); 2 0 -1 14 22 0 -1 22; 2 22 -1 14 22 0 22; 2 5 -1 14 22 0 5; 2 5 -1 14 22 0 -1 14 23 5 -1 23; 2 23 -1 14 22 0 -1 14 23 5 23; 2 1 (14 22 1 (22)); 2 1 (14 22 1 -1 22); 2 1 -1 14 22 1 -1 22; 2 22 -1 14 22 1 22; 2 5 -1 14 22 1 5; 2 5 -1 14 22 1 -1 14 23 5 -1 23; 2 23 -1 14 22 1 -1 14 23 5 23; 2 2 (14 22 2 (22)); 2 2 (14 22 2 -1 22); 2 2 -1 14 22 2 -1 22; 2 22 -1 14 22 2 22; 2 5 -1 14 22 2 5; 2 5 -1 14 22 2 -1 14 23 5 -1 23; 2 23 -1 14 22 2 -1 14 23 5 23; # Now for functions. 14 20 (12 28 5) -1 2 5 (20 2); 14 32 (12 24 5) -1 2 5 (32 3); 14 28 (12 29 6) -1 2 6 (28 2); 14 30 (12 32 6) -1 2 6 (30 3); 14 25 (12 38 (38)) -1 2 2 (25 2); 14 23 (12 30 (30)) -1 2 3 (23 3); 14 25 (12 33 (33)) -1 2 2 (25 2); 14 29 (12 21 (21)) -1 2 3 (29 3); 14 25 (12 32 -1 10 (32) 1) -1 2 3 (25 2); 14 31 (12 38 -1 10 (38) 1) -1 2 4 (31 3); 14 35 (12 33 -1 10 (33) 1) -1 2 3 (35 2); 14 32 (12 26 -1 10 (26) 1) -1 2 4 (32 3); 14 36 (12 37 -1 10 (37) 6) -1 2 (36 6) 12; 2 ((12 37 -1 10 (37) 6) 6) 12; 14 36 (12 37 -1 10 (37) 4) -1 2 (36 0) 4; 2 ((12 37 -1 10 (37) 4) 0) 4; 14 36 (12 37 -1 10 (37) 12) -1 2 (36 0) 12; 2 ((12 37 -1 10 (37) 12) 0) 12; 14 36 (12 37 -1 10 (37) 15) -1 2 (36 2) 17; 2 ((12 37 -1 10 (37) 15) 2) 17; 14 38 (12 37 -1 12 36 -1 10 1 -1 9 (37) (36)) -1 2 (38 13 4) 53; 14 38 (12 37 -1 12 36 -1 10 1 -1 9 (37) (36)) -1 2 ((38 13) 4) 53; 2 ((12 37 -1 12 36 -1 10 1 -1 9 (37) (36)) 13 4) 53; 2 (((12 37 -1 12 36 -1 10 1 -1 9 (37) (36)) 13) 4) 53; 14 38 (12 37 -1 12 36 -1 10 1 -1 9 (37) (36)) -1 2 (38 5 6) 31; 14 38 (12 37 -1 12 36 -1 10 1 -1 9 (37) (36)) -1 2 ((38 5) 6) 31; 2 ((12 37 -1 12 36 -1 10 1 -1 9 (37) (36)) 5 6) 31; 2 (((12 37 -1 12 36 -1 10 1 -1 9 (37) (36)) 5) 6) 31; 14 38 (12 37 -1 12 36 -1 10 1 -1 9 (37) (36)) -1 2 (38 7 8) 57; 14 38 (12 37 -1 12 36 -1 10 1 -1 9 (37) (36)) -1 2 ((38 7) 8) 57; 2 ((12 37 -1 12 36 -1 10 1 -1 9 (37) (36)) 7 8) 57; 2 (((12 37 -1 12 36 -1 10 1 -1 9 (37) (36)) 7) 8) 57; 14 38 (12 37 -1 12 36 -1 10 1 -1 9 (37) (36)) -1 2 (38 8 2) 17; 14 38 (12 37 -1 12 36 -1 10 1 -1 9 (37) (36)) -1 2 ((38 8) 2) 17; 2 ((12 37 -1 12 36 -1 10 1 -1 9 (37) (36)) 8 2) 17; 2 (((12 37 -1 12 36 -1 10 1 -1 9 (37) (36)) 8) 2) 17; 14 39 (12 37 -1 12 36 -1 12 38 -1 2 (38) -1 10 (37) (36)) -1 39 15 14 29; 14 39 (12 37 -1 12 36 -1 12 38 -1 2 (38) -1 10 (37) (36)) -1 39 5 8 13; 14 39 (12 37 -1 12 36 -1 12 38 -1 2 (38) -1 10 (37) (36)) -1 39 12 15 27; 14 39 (12 37 -1 12 36 -1 12 38 -1 2 (38) -1 10 (37) (36)) -1 39 14 14 28; 14 39 (12 37 -1 12 36 -1 12 38 -1 2 (38) -1 10 (37) (36)) -1 39 8 0 8; 14 39 (12 37 -1 12 36 -1 12 38 -1 2 (38) -1 10 (37) (36)) -1 39 15 9 24; 14 39 (12 37 -1 12 36 -1 12 38 -1 2 (38) -1 10 (37) (36)) -1 39 11 15 26; 14 39 (12 37 -1 12 36 -1 12 38 -1 2 (38) -1 10 (37) (36)) -1 39 5 7 12; # MATH demonstrate existence of memory 13 40 42; 2 42 (40); # now introduce a function 14 41 (12 37 -1 9 (37) (37)) -1 2 0 (41 0); 14 41 (12 37 -1 9 (37) (37)) -1 2 16 (41 4); 14 41 (12 37 -1 9 (37) (37)) -1 2 64 (41 8); 14 41 (12 37 -1 9 (37) (37)) -1 2 9 (41 3); # show that functions can be remembered across statements 13 41 -1 12 37 -1 9 (37) (37); 2 (41 5) 25; 2 (41 0) 0; 2 (41 1) 1; 2 (41 9) 81; 13 42 -1 12 37 -1 10 (37) 1; 2 (42 7) 8; 2 (42 3) 4; 2 (42 3) 4; 2 (42 5) 6; # This could all be simplified or removed # once the handling of true / false stabilizes # MATH use equality for truth values 2 (2 0110 0110) (3 011110 0110); 2 (2 010 010) (3 01111110 011110); 2 (1 01110 011110) (2 0111110 0111110); 2 (2 01110 01110) (2 011110 011110); 2 (2 01110 01110) (2 00 00); 2 (1 01111110 0110) (1 011110 0110); 2 (1 011110 010) (3 00 00); 2 (3 00 0111110) (2 01110 0110); 2 (3 0110 01110) (3 011110 0111110); 2 (3 0110 01111110) (3 010 01111110); 4 -1 2 (3 0110 01110) (1 010 011110); 4 -1 2 (2 011110 01110) (1 010 0110); 4 -1 2 (2 0111110 011110) (1 0110 011110); 4 -1 2 (3 011110 01111110) (2 01110 01110); 4 -1 2 (2 01110 010) (3 011110 010); 4 -1 2 (1 01110 01111110) (1 01111110 0110); 4 -1 2 (2 0110 0110) (3 0110 0111110); 4 -1 2 (2 0111110 0111110) (1 01111110 0110); 4 -1 2 (2 01110 01110) (1 011110 01110); 4 -1 2 (3 0111110 0110) (1 0111110 011110); 13 43 1; 13 44 0; 2 (43) (2 010 010); 2 (43) (2 00 00); 2 (43) (3 011111110 0111110); 2 (43) (2 0111110 0111110); 2 (43) (2 011110 011110); 2 (1 0111110 01111110) (43); 2 (2 0111110 0111110) (43); 2 (3 011111110 0111110) (43); 2 (2 0110 0110) (43); 2 (1 01110 01111110) (43); 2 (44) (1 0111110 00); 2 (44) (2 0110 01110); 2 (44) (1 01111110 0110); 2 (44) (3 010 0110); 2 (44) (3 0110 0111110); 2 (2 011110 01110) (44); 2 (2 00 010) (44); 2 (1 01111110 01110) (44); 2 (2 01110 00) (44); 2 (2 011110 01110) (44); 2 (43) (43); 2 (44) (44); 4 -1 2 (43) (44); 4 -1 2 (44) (43); # MATH show mechanisms for branching 0 15; 2 28 -1 15 (1 3 0) 24 28; 2 27 -1 15 (3 2 4) 29 27; 2 29 -1 15 (2 3 1) 20 29; 2 21 -1 15 (2 0 0) 21 26; 2 29 -1 15 (3 5 3) 29 23; 2 26 -1 15 (3 1 0) 26 22; 2 21 -1 15 (2 3 3) 21 27; 2 23 -1 15 (3 4 4) 25 23; 13 45 -1 12 37 -1 12 36 -1 15 (3 (37) (36)) (37) (36); 13 46 -1 12 37 -1 12 36 -1 15 (1 (37) (36)) (37) (36); 2 0 -1 45 0 0; 2 0 -1 46 0 0; 2 1 -1 45 0 1; 2 0 -1 46 0 1; 2 2 -1 45 0 2; 2 0 -1 46 0 2; 2 1 -1 45 1 0; 2 0 -1 46 1 0; 2 1 -1 45 1 1; 2 1 -1 46 1 1; 2 2 -1 45 1 2; 2 1 -1 46 1 2; 2 2 -1 45 2 0; 2 0 -1 46 2 0; 2 2 -1 45 2 1; 2 1 -1 46 2 1; 2 2 -1 45 2 2; 2 2 -1 46 2 2; # need to be careful about whether 'if' is eager or lazy # here we suggest that it is lazy 13 47 -1 12 48 -1 15 (1 (48) 1) 1 -1 9 (48) -1 47 -1 11 (48) 1; 2 1 -1 47 1; 2 2 -1 47 2; 2 6 -1 47 3; 2 24 -1 47 4; 2 120 -1 47 5; # MATH introduce the AND logical operator 0 5; 13 5 (12 37 -1 12 36 -1 15 (37) (15 (36) (43) (44)) (44)); 5 (2 0110 0110) (3 011110 0110); 5 (2 010 010) (3 01111110 011110); 5 (1 01110 011110) (2 0111110 0111110); 5 (2 01110 01110) (2 011110 011110); 5 (2 01110 01110) (2 00 00); 5 (1 0111110 011111110) (3 0111110 01110); 5 (3 0111110 011110) (3 010 00); 5 (3 01110 00) (2 01110 01110); 5 (1 01110 011110) (1 01110 01111110); 5 (3 0111110 011110) (3 0111110 011110); 4 -1 5 (3 01111110 011110) (1 01110 010); 4 -1 5 (3 01110 010) (3 01110 01110); 4 -1 5 (2 00 00) (2 0111110 011110); 4 -1 5 (1 0110 011110) (3 011110 01111110); 4 -1 5 (2 01110 01110) (2 01110 010); 4 -1 5 (3 010 0111110) (1 01110 01111110); 4 -1 5 (1 01111110 0110) (2 0110 0110); 4 -1 5 (3 0110 0111110) (2 0111110 0111110); 4 -1 5 (1 01111110 0110) (2 01110 01110); 4 -1 5 (1 011110 01110) (3 0111110 0110); 4 -1 5 (1 0111110 011110) (2 010 0110); 4 -1 5 (1 01111110 011110) (2 0111110 010); 4 -1 5 (3 0110 01111110) (2 010 0111110); 4 -1 5 (1 01111110 01110) (2 0110 01110); 4 -1 5 (1 01111110 011110) (3 00 010); 4 -1 5 (2 01110 0111110) (1 011110 010); 4 -1 5 (2 011110 010) (1 011110 0110); 4 -1 5 (1 01111110 01110) (2 01110 00); 4 -1 5 (1 011110 0110) (1 011110 01111110); 4 -1 5 (3 011110 010) (1 0111110 0110); 4 -1 5 (3 00 010) (3 011111110 0111110); 4 -1 5 (1 01110 011110) (3 01110 01111110); 4 -1 5 (3 010 0110) (3 01111110 011110); 4 -1 5 (1 00 010) (2 011110 0111110); 5 (1 011110 01111110) (1 0111110 011111110); # MATH introduce the OR logical operator 13 6 (12 37 -1 12 36 -1 15 (37) (43) (15 (36) (43) (44))); 0 6; 6 (2 0110 0110) (3 011110 0110); 6 (2 010 010) (3 01111110 011110); 6 (1 01110 011110) (2 0111110 0111110); 6 (2 01110 01110) (2 011110 011110); 6 (2 01110 01110) (2 00 00); 6 (1 0111110 011111110) (3 0111110 01110); 6 (3 0111110 011110) (3 010 00); 6 (3 01110 00) (2 01110 01110); 6 (1 01110 011110) (1 01110 01111110); 6 (3 0111110 011110) (3 0111110 011110); 6 (3 01111110 011110) (1 01110 010); 6 (3 01110 010) (3 01110 01110); 6 (2 00 00) (2 0111110 011110); 6 (1 0110 011110) (3 011110 01111110); 6 (2 01110 01110) (2 01110 010); 6 (3 010 0111110) (1 01110 01111110); 6 (1 01111110 0110) (2 0110 0110); 6 (3 0110 0111110) (2 0111110 0111110); 6 (1 01111110 0110) (2 01110 01110); 6 (1 011110 01110) (3 0111110 0110); 4 -1 6 (1 0111110 011110) (2 010 0110); 4 -1 6 (1 01111110 011110) (2 0111110 010); 4 -1 6 (3 0110 01111110) (2 010 0111110); 4 -1 6 (1 01111110 01110) (2 0110 01110); 4 -1 6 (1 01111110 011110) (3 00 010); 4 -1 6 (2 01110 0111110) (1 011110 010); 4 -1 6 (2 011110 010) (1 011110 0110); 4 -1 6 (1 01111110 01110) (2 01110 00); 6 (1 011110 0110) (1 011110 01111110); 6 (3 011110 010) (1 0111110 0110); 6 (3 00 010) (3 011111110 0111110); 6 (1 01110 011110) (3 01110 01111110); 6 (3 010 0110) (3 01111110 011110); 6 (1 00 010) (2 011110 0111110); 6 (1 011110 01111110) (1 0111110 011111110); 13 49 (12 37 -1 12 36 -1 6 (3 (37) (36)) (2 (37) (36))); 13 50 (12 37 -1 12 36 -1 6 (1 (37) (36)) (2 (37) (36))); 49 0 0; 50 0 0; 4 -1 49 0 1; 50 0 1; 4 -1 49 0 2; 50 0 2; 49 1 0; 4 -1 50 1 0; 49 1 1; 50 1 1; 4 -1 49 1 2; 50 1 2; 49 2 0; 4 -1 50 2 0; 49 2 1; 4 -1 50 2 1; 49 2 2; 50 2 2; # MATH illustrate pairs 13 21 (12 37 -1 12 36 -1 12 51 -1 51 (37) (36)); 13 22 (12 52 -1 52 (12 37 -1 12 36 -1 37)); 13 23 (12 52 -1 52 (12 37 -1 12 36 -1 36)); 14 37 (21 0 4) -1 2 (22 -1 37) 0; 14 37 (21 0 4) -1 2 (23 -1 37) 4; 14 37 (21 6 2) -1 2 (22 -1 37) 6; 14 37 (21 6 2) -1 2 (23 -1 37) 2; 14 37 (21 3 9) -1 2 (22 -1 37) 3; 14 37 (21 3 9) -1 2 (23 -1 37) 9; 14 37 (21 7 -1 21 10 2) -1 2 (22 -1 37) 7; 14 37 (21 7 -1 21 10 2) -1 2 (22 -1 23 -1 37) 10; 14 37 (21 7 -1 21 10 2) -1 2 (23 -1 23 -1 37) 2; 14 37 (21 1 -1 21 15 17) -1 2 (22 -1 37) 1; 14 37 (21 1 -1 21 15 17) -1 2 (22 -1 23 -1 37) 15; 14 37 (21 1 -1 21 15 17) -1 2 (23 -1 23 -1 37) 17; 14 37 (21 8 -1 21 14 9) -1 2 (22 -1 37) 8; 14 37 (21 8 -1 21 14 9) -1 2 (22 -1 23 -1 37) 14; 14 37 (21 8 -1 21 14 9) -1 2 (23 -1 23 -1 37) 9; 14 37 (21 3 -1 21 0 -1 21 2 -1 21 4 1) -1 5 (2 3 -1 22 -1 37) -1 5 (2 0 -1 22 -1 23 -1 37) -1 5 (2 2 -1 22 -1 23 -1 23 -1 37) -1 5 (2 4 -1 22 -1 23 -1 23 -1 23 -1 37) (2 1 -1 23 -1 23 -1 23 -1 23 -1 37); # MATH introduce mutable objects, and side-effects 0 27; 0 28; 0 29; 13 53 -1 27 0; 28 (53) 15; 2 (29 -1 53) 15; 28 (53) 5; 28 (53) 7; 2 (29 -1 53) 7; 13 54 -1 27 11; 2 (29 -1 54) 11; 28 (54) 22; 2 (29 -1 54) 22; 2 (29 -1 53) 7; 2 (10 (29 -1 53) (29 -1 54)) 29; 15 (2 (29 -1 53) 7) (28 (53) 88) (28 (53) 99); 2 (29 -1 53) 88; 15 (2 (29 -1 53) 7) (28 (53) 88) (28 (53) 99); 2 (29 -1 53) 99; # 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. # pending: should introduce number? check function 13 55 -1 12 48 -1 12 56 -1 15 (3 (48) 1) (12 37 -1 55 (11 (48) 1) (12 36 -1 12 38 -1 56 (10 1 (36)) (21 (37) (38)))) (12 37 -1 56 1 (37)); 13 57 -1 12 48 -1 15 (2 (48) 0) (21 0 0) (55 (48) (12 36 -1 12 38 -1 21 (36) (38))); 13 58 -1 12 59 -1 15 (2 (22 -1 59) 0) (32) (15 (2 (22 -1 59) 1) (23 -1 59) (22 -1 23 -1 59)); 13 60 -1 12 59 -1 15 (2 (22 -1 59) 0) (32) (15 (2 (22 -1 59) 1) (21 0 0) (21 (11 (22 -1 59) 1) (23 -1 23 -1 59))); 13 61 -1 12 59 -1 22 -1 59; 13 62 -1 12 59 -1 12 48 -1 15 (2 (62 -1 59) 0) (32) (15 (2 (48) 0) (58 -1 59) (62 (60 -1 59) (11 (48) 1))); 13 63 -1 12 37 -1 12 59 -1 15 (2 (61 -1 59) 0) (21 1 (37)) (21 (10 (61 -1 59) 1) (21 (37) (23 -1 59))); 13 8 -1 12 37 -1 12 36 -1 15 (2 (24 (37)) (24 (36))) (15 (24 (37)) (2 (37) (36)) (64 (37) (36))) (44); 13 64 -1 12 37 -1 12 36 -1 15 (2 (61 -1 37) (61 -1 36)) (15 (3 (61 -1 37) 0) (5 (8 (58 -1 37) (58 -1 36)) (64 (60 -1 37) (60 -1 36))) (43)) (44); 2 (61 -1 (57 0)) 0; 2 (61 -1 (57 4) 6 1 0 4) 4; 2 (61 -1 (57 6) 6 2 7 0 9 4) 6; 2 (61 -1 (57 2) 4 9) 2; 2 (61 -1 (57 3) 6 1 7) 3; 2 (58 -1 (57 6) 12 11 10 4 1 5) 12; 64 (60 -1 (57 6) 12 11 10 4 1 5) ((57 5) 11 10 4 1 5); 2 (58 -1 (57 8) 15 13 12 7 10 11 13 18) 15; 64 (60 -1 (57 8) 15 13 12 7 10 11 13 18) ((57 7) 13 12 7 10 11 13 18); 2 (58 -1 (57 2) 11 1) 11; 64 (60 -1 (57 2) 11 1) ((57 1) 1); 2 (58 -1 (57 6) 5 19 4 16 6 11) 5; 64 (60 -1 (57 6) 5 19 4 16 6 11) ((57 5) 19 4 16 6 11); 2 (58 -1 (57 10) 12 18 7 4 9 18 6 16 6 18) 12; 64 (60 -1 (57 10) 12 18 7 4 9 18 6 16 6 18) ((57 9) 18 7 4 9 18 6 16 6 18); 2 (58 -1 (57 6) 19 7 3 10 19 13) 19; 64 (60 -1 (57 6) 19 7 3 10 19 13) ((57 5) 7 3 10 19 13); 2 (58 -1 (57 6) 19 7 19 12 16 13) 19; 64 (60 -1 (57 6) 19 7 19 12 16 13) ((57 5) 7 19 12 16 13); 2 (58 -1 (57 1) 3) 3; 64 (60 -1 (57 1) 3) ((57 0)); 2 (58 -1 (57 3) 2 19 17) 2; 64 (60 -1 (57 3) 2 19 17) ((57 2) 19 17); 2 (58 -1 (57 7) 1 16 5 14 6 19 2) 1; 64 (60 -1 (57 7) 1 16 5 14 6 19 2) ((57 6) 16 5 14 6 19 2); 2 (62 ((57 3) 18 14 17) 1) 14; 2 (62 ((57 3) 8 11 10) 2) 10; 2 (62 ((57 8) 15 0 4 9 9 2 10 17) 3) 9; 2 (62 ((57 7) 4 8 8 5 14 5 13) 4) 14; 2 (62 ((57 4) 1 4 7 18) 2) 7; 2 (62 ((57 3) 12 2 3) 1) 2; 2 (62 ((57 6) 12 5 7 15 7 16) 2) 7; 2 (62 ((57 8) 5 15 7 14 7 1 11 19) 0) 5; 2 (62 ((57 3) 19 17 8) 2) 8; 2 (62 ((57 4) 10 10 4 11) 1) 10; 64 ((57 0)) ((57 0)); 64 ((57 1) 4) ((57 1) 4); 64 ((57 2) 7 5) ((57 2) 7 5); 64 ((57 3) 15 13 11) ((57 3) 15 13 11); 64 ((57 4) 2 8 0 6) ((57 4) 2 8 0 6); # this next batch of examples are a bit misleading, should streamline 4 -1 64 ((57 0)) ((57 1) 9); 4 -1 64 ((57 0)) ((57 1) 5); 4 -1 64 ((57 1) 18) ((57 2) 8 18); 4 -1 64 ((57 1) 18) ((57 2) 18 5); 4 -1 64 ((57 2) 11 18) ((57 3) 7 11 18); 4 -1 64 ((57 2) 11 18) ((57 3) 11 18 6); 4 -1 64 ((57 3) 7 19 17) ((57 4) 6 7 19 17); 4 -1 64 ((57 3) 7 19 17) ((57 4) 7 19 17 0); 4 -1 64 ((57 4) 10 0 11 1) ((57 5) 0 10 0 11 1); 4 -1 64 ((57 4) 10 0 11 1) ((57 5) 10 0 11 1 8); # some helpful functions 64 (63 8 ((57 0))) ((57 1) 8); 64 (63 11 ((57 1) 8)) ((57 2) 11 8); 64 (63 13 ((57 2) 1 12)) ((57 3) 13 1 12); 64 (63 0 ((57 3) 7 7 5)) ((57 4) 0 7 7 5); 64 (63 16 ((57 4) 16 0 19 3)) ((57 5) 16 16 0 19 3); 64 (63 10 ((57 5) 5 6 7 9 10)) ((57 6) 10 5 6 7 9 10); 64 (63 19 ((57 6) 3 19 18 6 10 16)) ((57 7) 19 3 19 18 6 10 16); 64 (63 19 ((57 7) 17 17 10 1 18 12 14)) ((57 8) 19 17 17 10 1 18 12 14); 13 52 -1 12 37 -1 12 36 -1 (57 2) (37) (36); 13 65 -1 12 59 -1 58 -1 59; 13 66 -1 12 59 -1 58 -1 60 -1 59; 64 (52 3 6) ((57 2) 3 6); 2 (65 -1 52 3 6) 3; 2 (66 -1 52 3 6) 6; 64 (52 4 9) ((57 2) 4 9); 2 (65 -1 52 4 9) 4; 2 (66 -1 52 4 9) 9; 64 (52 8 3) ((57 2) 8 3); 2 (65 -1 52 8 3) 8; 2 (66 -1 52 8 3) 3; 13 67 -1 12 59 -1 12 68 -1 12 69 -1 12 70 -1 15 (2 (61 -1 59) 0) (69 0) (15 (8 (58 -1 59) (68)) (70) (67 (60 -1 59) (68) (69) (10 (70) 1))); 13 71 -1 12 59 -1 12 68 -1 12 69 -1 67 (59) (68) (69) 0; 13 72 -1 12 37 100; 2 (71 ((57 1) 13) 13 (72)) 0; 2 (71 ((57 10) 0 9 8 16 15 14 17 5 9 2) 15 (72)) 4; 2 (71 ((57 3) 7 4 10) 7 (72)) 0; 2 (71 ((57 6) 0 17 10 13 11 5) 17 (72)) 1; 2 (71 ((57 3) 12 9 6) 12 (72)) 0; 2 (71 ((57 7) 17 1 4 17 14 13 13) 14 (72)) 4; 2 (71 ((57 3) 2 15 2) 15 (72)) 1; 2 (71 ((57 9) 6 13 10 8 10 9 6 15 18) 13 (72)) 1; 2 (71 ((57 3) 12 16 0) 12 (72)) 0; 2 (71 ((57 1) 15) 15 (72)) 0; 2 (71 ((57 4) 2 17 11 5) 14 (72)) 100; 2 (71 ((57 6) 12 1 19 6 17 9) 2 (72)) 100; 2 (71 ((57 8) 11 6 17 8 13 10 9 16) 19 (72)) 100; # HACK describe changes to the implicit interpreter to allow new special forms 13 73 -1 25; 13 25 -1 12 37 -1 15 (2 (37) 32) 64 (73 -1 37); 2 32 64; 2 (10 32 64) 128; 13 25 -1 73; 4 -1 2 32 64; 2 (10 32 64) 96; # now can create a special form for lists 13 25 -1 12 37 -1 15 (24 -1 37) (73 -1 37) (15 (2 (58 -1 37) 16) (25 -1 63 ((57 2) 57 (61 -1 60 -1 37)) (60 -1 37)) (73 -1 37)); 64 (16 1 2 3) ((57 3) 1 2 3); # now to desugar let expressions 13 74 -1 25; 13 75 -1 12 37 -1 12 76 -1 15 (2 (61 -1 37) 0) (25 -1 76) (75 (60 -1 37) (16 (16 12 (58 -1 58 -1 37) (76)) (58 -1 60 -1 58 -1 37))); 13 25 -1 12 37 -1 15 (24 -1 37) (74 -1 37) (15 (2 (58 -1 37) 77) (75 (58 -1 60 -1 37) (58 -1 60 -1 60 -1 37)) (74 -1 37)); 77 ((37 20)) (2 (37) 20); 77 ((37 50) (36 20)) (2 (11 (37) (36)) 30); # the is-list function is now on dubious ground # this stuff will be replaced with typing ASAP 13 78 -1 12 37 -1 4 -1 24 -1 37; 78 -1 (57 2) 1 3; 78 -1 (57 0); 4 -1 78 23; 78 -1 (57 3) ((57 2) 2 3) 1 (12 37 -1 10 (37) 10); # MATH introduce sugar for let # if would be good to introduce desugarings more rigorously, but for now... # ... just a very vague sketch 0 77; 2 (77 ((37 10)) (10 (37) 5)) ((12 37 -1 10 (37) 5) 10); 2 (77 ((37 10) (36 5)) (10 (37) (36))) (((12 37 -1 12 36 -1 10 (37) (36)) 10) 5); # MATH build up functions of several variables 2 ((12 37 -1 12 36 -1 11 (37) (36)) 4 0) 4; 2 ((12 37 -1 12 36 -1 11 (37) (36)) 11 8) 3; 2 ((12 37 -1 12 36 -1 11 (37) (36)) 5 5) 0; 2 ((12 37 -1 12 36 -1 11 (37) (36)) 10 1) 9; 2 ((12 37 -1 12 36 -1 11 (37) (36)) 10 7) 3; 13 79 -1 12 37 -1 62 (37) (11 (61 -1 37) 1); 13 80 -1 12 37 -1 15 (3 (61 -1 37) 1) (63 (58 -1 37) (80 -1 60 -1 37)) (16); # test last and except-last 2 15 (79 -1 16 4 5 15); 64 (16 4 5) (80 -1 16 4 5 15); 0 26; 13 81 -1 25; 13 25 -1 77 ((82 (81))) (12 37 -1 15 (24 -1 37) (82 -1 37) (15 (2 (58 -1 37) 26) (77 ((83 (58 -1 60 -1 37)) (76 (58 -1 60 -1 60 -1 37))) (15 (3 (61 -1 83) 0) (25 (16 26 (80 -1 83) (16 12 (79 -1 83) (76)))) (25 (76)))) (82 -1 37))); # test lambda 2 ((26 (37 36) (11 (37) (36))) 8 3) 5; 2 ((26 (37 36) (11 (37) (36))) 1 1) 0; 2 ((26 (37 36) (11 (37) (36))) 10 9) 1; 2 ((26 (37 36) (11 (37) (36))) 7 5) 2; 2 ((26 (37 36) (11 (37) (36))) 9 8) 1; 13 84 -1 26 (37 36) (15 (64 (36) (16)) (37) (84 ((37) (58 -1 36)) (60 -1 36))); 2 (84 (26 (37 36) (11 (37) (36))) (16 8 6)) 2; 2 (84 (26 (37 36) (11 (37) (36))) (16 5 0)) 5; 2 (84 (26 (37 36) (11 (37) (36))) (16 12 9)) 3; 2 (84 (26 (37 36) (11 (37) (36))) (16 13 8)) 5; 2 (84 (26 (37 36) (11 (37) (36))) (16 11 3)) 8; # MATH show map function for applying a function across the elements of a list 13 85 -1 26 (86 59) (15 (3 (61 -1 59) 0) (63 (86 (58 -1 59)) (85 (86) (60 -1 59))) (16)); 64 (85 (12 37 -1 9 (37) 2) (16 0 8 15)) (16 0 16 30); 64 (85 (12 37 -1 9 (37) 2) (16 12 4 0 9)) (16 24 8 0 18); 64 (85 (12 37 -1 9 (37) 2) (16 8 9 5 7 10)) (16 16 18 10 14 20); 64 (85 (12 37 -1 9 (37) 2) (16 10 12 19 8 3 1)) (16 20 24 38 16 6 2); 64 (85 (12 37 42) (16 5 18 4)) (16 42 42 42); 64 (85 (12 37 42) (16 3 10 17 11)) (16 42 42 42 42); 64 (85 (12 37 42) (16 5 13 6 16 2)) (16 42 42 42 42 42); 64 (85 (12 37 42) (16 9 1 19 14 6 10)) (16 42 42 42 42 42 42); 13 87 -1 26 (86 59) (15 (49 (61 -1 59) 2) (86 (58 -1 59) (87 (86) (60 -1 59))) (15 (2 (61 -1 59) 1) (58 -1 59) (32))); 2 (87 (10) (16 5 12 2)) 19; 2 (87 (10) (16 11 18 1 4)) 34; 2 (87 (10) (16 15 13 10 12 2)) 52; 2 (87 (10) (16 12 6 17 15 4 10)) 64; # 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 0 88; # MATH show an example of recursive evaluation # skipping over a lot of definitions and desugarings 13 89 -1 12 51 -1 12 37 -1 15 (3 (37) 0) (9 (37) -1 51 (51) (11 (37) 1)) 1; 13 47 -1 12 37 -1 15 (3 (37) 0) (9 (37) -1 47 -1 11 (37) 1) 1; 2 (89 (89) 0) 1; 2 (89 (89) 1) 1; 2 (89 (89) 2) 2; 2 (89 (89) 3) 6; 2 (89 (89) 4) 24; 2 (89 (89) 5) 120; 2 (47 0) 1; 2 (47 1) 1; 2 (47 2) 2; 2 (47 3) 6; 2 (47 4) 24; 2 (47 5) 120; # 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 13 90 -1 12 37 -1 12 36 -1 12 38 -1 37 (36) (38); 13 91 -1 12 36 -1 12 38 -1 36; 13 92 -1 12 36 -1 12 38 -1 38; 13 93 -1 12 37 -1 12 36 -1 12 38 -1 90 (38) (37) (36); 13 94 -1 12 37 -1 37 (91); 13 95 -1 12 37 -1 37 (92); 13 96 -1 12 51 -1 12 37 -1 37; 13 97 -1 12 51 -1 12 37 -1 51 (37); 13 98 -1 12 51 -1 12 37 -1 51 (51 (37)); 13 99 -1 12 48 -1 12 51 -1 12 37 -1 51 ((48 (51)) (37)); 13 100 -1 12 101 -1 12 102 -1 (101 (99)) (102); 13 103 -1 12 101 -1 12 102 -1 (101 (100 -1 102)) (96); 13 104 -1 12 48 -1 95 -1 (48 (12 86 -1 93 (99 -1 94 -1 86) (94 -1 86))) (93 (96) (96)); 13 105 -1 12 48 -1 (48 (12 106 -1 92) (91)); 13 107 -1 12 51 -1 (12 37 -1 51 (37 (37))) (12 37 -1 51 (37 (37))); # .. but for rest of message will assume that define does fixed-point for us # now build a link between numbers and church number functions 13 108 -1 12 109 -1 109 (12 37 -1 10 (37) 1) 0; 2 0 (108 -1 96); 2 1 (108 -1 97); 2 2 (108 -1 98); 13 110 -1 12 37 -1 15 (2 0 (37)) (96) (99 -1 110 -1 11 (37) 1); # MATH introduce universal quantifier # really need to link with sets for true correctness # and the examples here are REALLY sparse, need much more 0 19; 1 5 (10 5 1); 1 4 (10 4 1); 1 3 (10 3 1); 1 2 (10 2 1); 1 1 (10 1 1); 1 0 (10 0 1); 19 (12 37 -1 1 (37) (10 (37) 1)); 1 5 (9 5 2); 1 4 (9 4 2); 1 3 (9 3 2); 1 2 (9 2 2); 1 1 (9 1 2); 4 -1 1 0 (9 0 2); 4 -1 19 (12 37 -1 1 (37) (9 (37) 2)); # MATH introduce existential quantifier # really need to link with sets for true correctness # and the examples here are REALLY sparse, need much more 4 -1 2 5 (9 2 2); 2 4 (9 2 2); 4 -1 2 3 (9 2 2); 4 -1 2 2 (9 2 2); 4 -1 2 1 (9 2 2); 4 -1 2 0 (9 2 2); 0 20; 20 (12 37 -1 2 (37) (9 2 2)); 4 -1 2 5 (10 5 2); 4 -1 2 4 (10 4 2); 4 -1 2 3 (10 3 2); 4 -1 2 2 (10 2 2); 4 -1 2 1 (10 1 2); 4 -1 2 0 (10 0 2); 4 (20 (12 37 -1 2 (37) (10 (37) 2))); # MATH introduce logical implication 0 111; 13 111 -1 12 37 -1 12 36 -1 4 -1 5 (37) (4 -1 36); 111 (43) (43); 4 -1 111 (43) (44); 111 (44) (43); 111 (44) (44); 19 (12 37 -1 19 (12 36 -1 111 (111 (37) (36)) (111 (4 -1 36) (4 -1 37)))); # MATH introduce sets and set membership 0 112; 13 112 -1 12 37 -1 12 59 -1 4 -1 2 (67 (59) (37) (12 36 0) 1) 0; 112 8 (16 8 4 3 0 5); 112 5 (16 8 4 3 0 5); 112 0 (16 8 4 3 0 5); 112 1 (16 1 0 3 9 5); 112 3 (16 1 0 3 9 5); 112 0 (16 1 0 3 9 5); 112 5 (16 6 8 1 0 2 5); 112 1 (16 6 8 1 0 2 5); 112 5 (16 6 8 1 0 2 5); 112 6 (16 6 8 3 9 2 5); 112 6 (16 6 8 3 9 2 5); 112 5 (16 6 8 3 9 2 5); 112 4 (16 6 4 1 7 2 5); 112 1 (16 6 4 1 7 2 5); 112 7 (16 6 4 1 7 2 5); 4 -1 112 6 (16 8 3 7 9); 4 -1 112 6 (16 8 4 1 3 5); 4 -1 112 6 (16 9 2 5); 4 -1 112 0 (16 7 2 5); 4 -1 112 6 (16 3 5); # rules for set equality 13 113 -1 12 37 -1 12 36 -1 15 (3 (61 -1 37) 0) (5 (112 (58 -1 37) (36)) (113 (60 -1 37) (36))) (43); 13 114 -1 12 37 -1 12 36 -1 5 (113 (37) (36)) (113 (36) (37)); 114 (16 1 5 9) (16 5 1 9); 114 (16 1 5 9) (16 9 1 5); 4 -1 114 (16 1 5 9) (16 1 5); # 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 112 5 (30 (12 37 -1 2 (10 (37) 10) 15)); 112 3 (30 (12 37 -1 2 (9 (37) 3) (10 (37) 6))); 13 115 -1 16; 112 0 (31); 19 (12 37 -1 111 (112 (37) (31)) (112 (10 (37) 1) (31))); 112 1 (31); 112 2 (31); 112 3 (31); 112 4 (31); 112 5 (31); 112 6 (31); 112 7 (31); 112 8 (31); 112 9 (31); 13 116 -1 16 (43) (44); 112 (43) (116); 112 (44) (116); # actually, to simplify semantics elsewhere, true and false # are now just 0 and 1 so they are not distinct from ints 13 117 -1 30 -1 12 37 -1 20 -1 12 36 -1 5 (112 (36) (31)) (2 (9 2 (36)) (37)); 112 0 (31); 112 0 (117); 112 1 (31); 4 -1 112 1 (117); 112 2 (31); 112 2 (117); 112 3 (31); 4 -1 112 3 (117); 112 4 (31); 112 4 (117); 112 5 (31); 4 -1 112 5 (117); 112 6 (31); 112 6 (117); # MATH introduce graph structures 13 118 -1 26 (119 120) (52 (119) (120)); 13 121 -1 118 (16 1 2 3 4) (16 (16 1 2) (16 2 3) (16 1 4)); 13 122 -1 26 (123 124 125) (20 -1 12 70 -1 15 (5 (49 (70) 0) (1 (70) (61 -1 62 (123) 1))) (64 (62 (62 (123) 1) (70)) (16 (124) (125))) (44)); 2 (122 (121) 1 2) (43); 2 (122 (121) 1 3) (44); 2 (122 (121) 2 4) (44); # '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'. 13 126 -1 26 (123 124 125) (15 (2 (124) (125)) (43) (15 (122 (123) (124) (125)) (43) (20 (12 127 -1 15 (122 (123) (124) (127)) (126 (123) (127) (125)) (44))))); 2 (126 (121) 1 2) (43); 2 (126 (121) 1 3) (43); 2 (126 (121) 2 4) (44); # MATH show how to execute a sequence of instructions 0 128; 13 81 -1 25; 13 129 -1 12 37 -1 15 (49 (61 -1 37) 1) (63 (79 -1 37) (129 -1 80 -1 37)) (37); # test reverse 64 (16 1 2 3) (129 -1 16 3 2 1); 13 25 -1 77 ((82 (81))) (12 37 -1 15 (24 -1 37) (82 -1 37) (15 (2 (58 -1 37) 128) (25 (16 (16 12 37 (16 58 (16 37))) (63 16 (129 -1 60 -1 37)))) (82 -1 37))); 2 (128 1 7 2 4) 4; 2 (128 (28 (53) 88) (28 (53) 6) (29 -1 53)) 6; 2 (128 (28 (54) 88) (28 (53) 6) (29 -1 54)) 88; 2 (128 (28 (53) 88) (28 (53) 6) (29 -1 53) 4) 4; # 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) 13 130 -1 26 (131 37 36 38) (15 (8 (38) (37)) (36) (131 (38))); 13 132 -1 26 (131 37) (131 (37)); 13 133 -1 12 37 -1 32; 13 134 -1 12 135 -1 12 37 -1 135; 13 136 -1 130 (130 (133) 3 2) 4 9; 2 (132 (136) 4) 9; 2 (132 (136) 3) 2; 2 (132 (136) 8) (32); 2 (132 (136) 15) (32); 2 (132 (130 (136) 15 33) 15) 33; 2 (132 (136) 15) (32); 13 137 -1 12 37 -1 15 (64 (37) (16)) (133) (130 (137 (60 -1 37)) (65 -1 58 -1 37) (66 -1 58 -1 37)); 2 (132 (137 -1 16 (52 3 10) (52 2 20) (52 1 30)) 3) 10; 2 (132 (137 -1 16 (52 3 10) (52 2 20) (52 1 30)) 1) 30; # OBJECT introduce simple mutable structures 13 138 -1 12 59 -1 77 ((139 (85 (12 37 -1 27 0) (59)))) (12 68 -1 62 (139) (71 (59) (68) (12 37 0))); 13 140 -1 138 -1 16 141 142 143; 28 (140 141) 15; 2 (29 -1 140 141) 15; # OBJECT introduce method handler wrappers 13 144 -1 26 (145 146 147) (130 (145) (146) (12 106 -1 147 -1 145)); 13 148 -1 12 37 -1 37 0; 13 149 -1 138 -1 16 37 36; 28 (149 37) 10; 28 (149 36) 20; 2 (29 -1 149 37) 10; 2 (29 -1 149 36) 20; 13 150 -1 144 (149) 151 (12 152 -1 10 (29 -1 152 37) (29 -1 152 36)); 2 (29 -1 150 37) 10; 2 (29 -1 150 36) 20; 2 (148 -1 150 151) 30; 28 (150 36) 10; 2 (148 -1 150 151) 20; 28 (149 36) 5; 2 (148 -1 150 151) 15; # TURING introduce turing machine model # just for fun! 13 153 -1 12 37 -1 15 (3 (61 -1 37) 0) (15 (3 (61 -1 37) 1) (60 -1 37) (16 -1 16)) (16 -1 16); 13 154 -1 12 37 -1 15 (3 (61 -1 37) 0) (58 -1 37) (16); 13 155 -1 12 156 -1 77 ((37 (66 -1 156))) (15 (3 (61 -1 37) 0) (58 -1 37) (16)); 13 157 -1 26 (156 158 159) (15 (2 (158) 1) (52 (63 (159) (65 -1 156)) (153 -1 66 -1 156)) (15 (2 (158) 0) (52 (153 -1 65 -1 156) (63 (154 -1 65 -1 156) (63 (159) (153 -1 66 -1 156)))) (52 (65 -1 156) (63 (159) (153 -1 66 -1 156))))); 13 160 -1 26 (161 162 79 156) (15 (2 (162) (79)) (156) (77 ((163 (161 (162) (155 -1 156)))) (160 (161) (62 (163) 0) (79) (157 (156) (62 (163) 1) (62 (163) 2))))); 13 164 -1 12 37 -1 52 (16) (37); 13 165 -1 12 37 -1 12 59 -1 15 (3 (61 -1 59) 0) (15 (8 (79 -1 59) (37)) (165 (37) (80 -1 59)) (59)) (59); 13 166 -1 12 37 -1 165 (16) (66 -1 37); 13 167 -1 137 -1 16 (52 168 (137 -1 16 (52 0 (16 168 1 0)) (52 1 (16 168 1 1)) (52 (16) (16 169 0 (16))))) (52 169 (137 -1 16 (52 0 (16 170 0 1)) (52 1 (16 169 0 0)) (52 (16) (16 171 2 1)))) (52 170 (137 -1 16 (52 0 (16 170 0 0)) (52 1 (16 170 0 1)) (52 (16) (16 171 1 (16))))) (52 171 (137 -1 16)); 64 (166 -1 160 (167) 168 171 (164 -1 16 1 0 0 1)) (16 1 0 1 0); 64 (166 -1 160 (167) 168 171 (164 -1 16 1 1 1)) (16 1 0 0 0); 64 (166 -1 160 (167) 168 171 (164 -1 16 1 1 1 0 0 0 1 1 1)) (16 1 1 1 0 0 1 0 0 0); # 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. 13 172 (26 (173) (26 (37) (15 (2 (37) 174) (173) 0))); 13 175 (12 37 (15 (24 (37)) (172 (37)) (37))); 13 176 (26 (177 178) (15 (24 (178)) (2 (177) 174) (4 (24 ((175 (178)) (177)))))); # add version of lambda that allows types to be declared 13 81 (25); 13 25 (77 ((82 (81))) (12 37 (15 (24 (37)) (82 (37)) (15 (2 (58 (37)) 26) (77 ((83 (58 (60 (37)))) (76 (58 (60 (60 (37)))))) (15 (3 (61 (83)) 0) (15 (24 (79 (83))) (25 (16 26 (80 (83)) (16 12 (79 (83)) (76)))) (77 ((179 (65 (79 (83)))) (180 (66 (79 (83))))) (25 (16 26 (80 (83)) (16 12 (179) (16 77 (16 (16 (179) (16 (16 175 (16 (179))) (180)))) (76))))))) (25 (76)))) (82 (37)))))); # add conditional form 13 81 (25); 13 25 (77 ((82 (81))) (12 37 (15 (24 (37)) (82 (37)) (15 (2 (58 (37)) 181) (77 ((182 (58 (60 (37)))) (183 (60 (60 (37))))) (15 (3 (61 (183)) 0) (25 (16 15 (65 (182)) (66 (182)) (63 181 (183)))) (25 (182)))) (82 (37)))))); 2 99 (181 99); 2 8 (181 ((43) 8) 11); 2 11 (181 ((44) 8) 11); 2 7 (181 ((44) 3) ((43) 7) 11); 2 3 (181 ((43) 3) ((43) 7) 11); 2 11 (181 ((44) 3) ((44) 7) 11); 13 184 (26 (185 59) (15 (3 (61 (59)) 0) (15 (185 (58 (59))) (184 (185) (60 (59))) (63 (58 (59)) (184 (185) (60 (59))))) (59))); 13 186 (26 (37) (184 (26 (36) (2 (36) (37))))); 64 (16 1 2 3 5) (186 4 (16 1 2 3 4 5)); 64 (16 1 2 3 5) (186 4 (16 1 4 2 4 3 4 5)); 13 187 (26 (177 178) (77 ((188 (175 (178)))) (188 (177)))); 13 189 (26 ((37 174) (36 174)) (187 174 (10 (37) (36)))); 2 42 (189 (172 10) (172 32)); 2 42 (189 10 32); 13 190 (26 (51) ((26 (37) (51 (26 (36) ((37 (37)) (36))))) (26 (37) (51 (26 (36) ((37 (37)) (36))))))); # OBJECT an example object -- a 2D point 13 191 (26 (37 36) (190 (26 (152 192) (181 ((2 (192) 37) (37)) ((2 (192) 36) (36)) ((2 (192) 191) (152)) ((2 (192) 10) (26 ((86 191)) (191 (10 (37) (86 37)) (10 (36) (86 36))))) ((2 (192) 2) (26 ((86 191)) (5 (2 (37) (86 37)) (2 (36) (86 36))))) 0)))); 13 193 (191 1 11); 13 194 (191 2 22); 2 1 (193 37); 2 22 (194 36); 2 11 ((191 11 12) 37); 2 11 (((191 11 12) 191) 37); 2 16 (((191 16 17) 191) 37); 2 33 (193 10 (194) 36); 193 10 (194) 2 (191 3 33); 194 10 (193) 2 (191 3 33); (191 100 200) 10 (191 200 100) 2 (191 300 300); 176 191 (193); 4 (176 174 (193)); 176 174 5; 4 (176 191 5); # OBJECT an example object -- a container 13 195 (26 (37) (77 ((196 (27 (16)))) (190 (26 (152 192) (181 ((2 (192) 195) (152)) ((2 (192) 197) (29 (196))) ((2 (192) 100) (26 (37) (15 (4 (112 (37) (29 (196)))) (28 (196) (63 (37) (29 (196)))) (44)))) ((2 (192) 198) (26 (37) (28 (196) (186 (37) (29 (196)))))) ((2 (192) 2) (26 ((109 195)) (114 (152 197) (109 197)))) 0))))); # 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 13 199 (195 200); 199 100 77; 199 100 88; 199 100 99; 114 (199 197) (16 77 88 99); 199 198 88; 114 (199 197) (16 77 99); 13 201 (195 200); 201 100 77; 201 100 99; 201 2 (199); # OBJECT expressing inheritance # counter-container adds one method to container: count 13 202 (26 (37) (77 ((203 (195 200))) (190 (26 (152 192) (181 ((2 (192) 202) (152)) ((2 (192) 204) (61 (203 197))) (203 (192))))))); 13 205 (202 200); 2 0 (205 204); 205 100 4; 2 1 (205 204); 205 100 5; 2 2 (205 204); # OBJECT adding a special form for classes # need a bunch of extra machinery first, will push this # back into previous sections eventually, and simplify 13 206 (26 (207 208) (15 (3 (61 (207)) 0) (206 (80 (207)) (63 (79 (207)) (208))) (208))); 64 (206 (16 1 2 3) (16 4 5 6)) (16 1 2 3 4 5 6); 13 209 (12 37 (12 59 (15 (3 (61 (59)) 0) (63 (58 (59)) (209 (37) (60 (59)))) (16 (37))))); 64 (209 5 (16 1 2)) (16 1 2 5); 13 210 (26 (185 59) (15 (3 (61 (59)) 0) (15 (185 (58 (59))) (63 (58 (59)) (210 (185) (60 (59)))) (210 (185) (60 (59)))) (59))); 13 211 (77 ((212 (27 0))) (26 (37) (77 ((213 (29 (212)))) (128 (28 (212) (10 (213) 1)) (213))))); 2 (211 200) 0; 2 (211 200) 1; 2 (211 200) 2; 4 (2 (211 200) (211 200)); 13 214 (26 (215 152) (15 (24 -1 215) (152) (215))); # 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. 13 81 (25); 13 25 (77 ((82 (81))) (12 37 (15 (24 (37)) (82 (37)) (15 (2 (58 (37)) 216) (77 ((146 (62 (37) 1)) (217 (62 (37) 2)) (218 (60 (60 (60 (37)))))) (25 (16 13 (146) (16 26 (63 219 (217)) (16 77 (209 (16 220 (16 211 200)) (85 (60) (210 (12 37 (2 (65 (37)) 221)) (218)))) (16 77 (16 (16 152 (16 190 (16 26 (16 152) (16 77 (16 (16 215 (16 214 (16 219) (16 152)))) (16 77 (16 (16 222 1)) (16 26 (16 147) (16 (206 (63 181 (206 (85 (12 37 (16 (16 2 (16 147) (65 (37))) (66 (37)))) (85 (60) (210 (12 37 (2 (65 (37)) 147)) (218)))) (85 (12 37 (16 (16 2 (16 147) (37)) (16 (37)))) (85 (66) (210 (12 37 (2 (65 (37)) 221)) (218)))))) (16 (16 (16 2 (16 147) 152) (16 152)) (16 (16 2 (16 147) (146)) (16 152 152)) (16 (16 2 (16 147) 223) (146)) (16 (16 2 (16 147) 224) (16 26 (16 37) 0)) (16 (16 2 (16 147) 200) 0) (16 (16 2 (16 147) 220) (16 220)) (16 (16 2 (16 147) 225) (16 26 (16 37) (16 2 (16 220) (16 37 220)))) (16 152 224 (16 147)))))))))))) (16 128 (16 152 200) (16 152)))))))) (82 (37)))))); # revisit the point class example 216 191 (37 36) (147 37 (37)) (147 36 (36)) (147 10 (26 ((86 191)) (191 200 (10 (37) (86 37)) (10 (36) (86 36))))) (147 2 (26 ((86 191)) (5 (2 (37) (86 37)) (2 (36) (86 36))))); # note the appearance of new in the next line -- # this is the only difference to previous version 13 193 (191 200 1 11); 13 194 (191 200 2 22); 2 1 (193 37); 2 22 (194 36); 2 11 ((191 200 11 12) 37); 2 11 (((191 200 11 12) 191) 37); 2 16 (((191 200 16 17) 191) 37); 2 33 (193 10 (194) 36); 193 10 (194) 2 (191 200 3 33); 194 10 (193) 2 (191 200 3 33); (191 200 100 200) 10 (191 200 200 100) 2 (191 200 300 300); 176 191 (193); 4 (176 174 (193)); # Check that virtual calls can be made to work. # They are a little awkward right now. # Should they be the default? 216 226 () (147 227 100) (147 228 (215 227)); 216 229 () (221 230 (27 0)) (147 200 (28 (230) (226 -1 215))) (147 203 (12 37 ((29 -1 230) (37)))) (147 224 (12 37 (152 203 -1 37))) (147 227 200); 2 100 -1 226 200 228; 2 200 -1 229 200 228; # OBJECT wrapper class for cells 216 231 (232) (221 233 (27 (232))) (147 234 (29 (233))) (147 235 (26 (236) (28 (233) (236)))) (147 237 (152 235 (232))) (147 224 (26 (37) ((175 (152 234)) (37)))); 13 238 (231 200 15); 2 15 (238 234); 238 235 82; 2 82 (238 234); 13 239 (231 200 (191 200 120 150)); 13 240 (231 200 (191 200 300 300)); 239 10 (240) 2 (191 200 420 450); 4 (239 2 (240)); 240 235 (239); 239 2 (240); # MUD playing around with doors and rooms 216 241 ((242 243) (244 243)) (147 200 (128 (242 100 (152)) (244 100 (152)))) (147 245 (26 ((162 243)) (181 ((162 225 (242)) (244)) ((162 225 (244)) (242)) 0))) (147 246 (26 ((162 243)) (181 ((162 225 (242)) (43)) ((162 225 (244)) (43)) (44)))); 216 243 (146) (221 233 (195 200)) (147 146 (146)) (147 224 (26 (37) (233 (37)))); # need to fix up containers to use object equality 13 247 (26 (48 59) (3 (61 (210 (26 (37) (37 225 (48))) (59))) 0)); 216 195 () (221 196 (231 200 (16))) (147 197 (196 234)) (147 100 (26 (37) (15 (4 (247 (37) (196 234))) (196 235 (63 (37) (196 234))) (44)))); 13 248 (243 200 0); 13 249 (243 200 1); 13 250 (241 200 (248) (249)); (65 (248 197)) 225 (250); (65 (249 197)) 225 (250); 250 245 (248) 225 (249); 4 (250 245 (248) 225 (248)); 250 245 (249) 225 (248); 13 251 (243 200 2); 13 252 (243 200 3); 13 253 (243 200 4); 13 254 (243 200 0); 13 255 (241 200 (248) (252)); 13 256 (241 200 (248) (251)); 13 257 (241 200 (251) (253)); 216 258 () (221 259 (231 200 0)) (221 146 (231 200 0)) (147 260 (26 ((261 243)) (128 (15 (4 (24 -1 259 234)) (259 234 198 (152)) 0) (261 100 (152)) (259 235 (261))))) (147 262 (259 234)) (147 263 (26 (48) (146 235 -1 48))) (147 264 (146 234)) (147 265 0); 13 266 (26 (185 45 70 48 59) (15 (3 (61 (59)) 0) (15 (3 (185 (58 (59))) (45)) (266 (185) (185 (58 (59))) (48) (10 (48) 1) (60 (59))) (266 (185) (45) (70) (10 (48) 1) (60 (59)))) (70))); 13 267 (26 (185 59) (266 (185) (185 (58 (59))) 0 0 (59))); 13 268 (26 (185 45 70 48 59) (15 (3 (61 (59)) 0) (15 (1 (185 (58 (59))) (45)) (268 (185) (185 (58 (59))) (48) (10 (48) 1) (60 (59))) (268 (185) (45) (70) (10 (48) 1) (60 (59)))) (70))); 13 269 (26 (185 59) (268 (185) (185 (58 (59))) 0 0 (59))); 2 2 (267 (26 (37) (37)) (16 3 4 5 0)); 2 1 (267 (26 (37) (37)) (16 3 5 4 0)); 2 0 (267 (26 (37) (37)) (16 5 3 4 0)); # the robo class makes a character that patrols from room to room 216 270 () (221 203 (258 200)) (221 271 (231 200 1)) (221 272 (231 200 (26 (37) 0))) (147 224 (26 (37) (203 (37)))) (147 265 (77 ((273 (210 (26 (37) (176 241 (37))) (152 259 197)))) (77 ((274 (85 (26 (37) (272 234 (37))) (273)))) (77 ((275 (62 (273) (269 (26 (37) (37)) (274)))) (276 (272 234)) (277 (271 234))) (128 (152 259 235 (275 245 (152 259 234))) (272 235 (26 ((278 241)) (15 (278 225 (275)) (277) (276 (278))))) (271 235 (10 (271 234) 1))))))); 13 279 (270 200); 279 260 (251); 13 280 (26 ((281 270)) (267 (26 ((261 243)) (15 (261 225 (281 262)) 1 0)) (16 (248) (249) (251) (252) (253)))); 13 282 (26 (48 162 59) (15 (1 (162) (48)) (128 (279 265) (282 (48) (10 (162) 1) (209 (280 (279)) (59)))) (59))); # here is a list of the first 30 rooms the robot character visits # 0=hall, 1=kitchen, 2=stairs, 3=lawn, 4=bedroom 64 (282 30 0 (16)) (16 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); # 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 # NOTE end of part 2, start of part 3 # The following parts of the message are the beginnings # of embedding an alternate visual primer 0 283; # 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) 13 284 -1 12 37 -1 12 36 -1 5 (37) (4 (36)); # if second input is true, output is blocked (false) # if second input is false, output copies first input 2 (44) (284 (44) (44)); 2 (43) (284 (43) (44)); 2 (44) (284 (44) (43)); 2 (44) (284 (43) (43)); # 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 13 285 -1 12 135 -1 (27 (134 (135))); 13 286 -1 12 287 -1 12 37 -1 12 288 -1 28 (287) -1 130 (29 (287)) (288) (37); 13 289 -1 12 287 -1 12 288 -1 132 (29 (287)) (288); 13 290 (285 0); 2 0 -1 289 (290) -1 16 1 2 3; 286 (290) 10 -1 16 1 2 3; 2 10 -1 289 (290) -1 16 1 2 3; # go through a circuit of unless gates and analyze data flow 13 291 -1 12 292 -1 14 293 (285 (44)) (128 (85 (12 294 -1 14 295 (62 (294) 0) -1 14 296 (62 (294) 1) -1 14 297 (62 (294) 2) -1 14 298 (62 (294) 3) -1 14 173 (62 (294) 4) -1 (15 (2 (295) (297)) (128 (286 (293) (173) -1 16 (297) (298) 299) (286 (293) (43) -1 16 (297) (298) 300) (286 (293) (43) -1 16 (295) (296) 301) (294)) (128 (286 (293) (173) -1 16 (297) (298) 302) (286 (293) (43) -1 16 (297) (298) 303) (286 (293) (43) -1 16 (295) (296) 304) (294)))) (292)) (293)); # move forward one simulation step 13 305 -1 12 292 -1 12 293 (85 (12 294 -1 14 295 (62 (294) 0) -1 14 296 (62 (294) 1) -1 14 297 (62 (294) 2) -1 14 298 (62 (294) 3) -1 14 173 (62 (294) 4) -1 14 306 (15 (2 (295) (297)) (15 (289 (293) -1 16 (295) (296) 300) (5 (289 (293) -1 16 (295) (296) 299) (4 (5 (289 (293) -1 16 (295) (296) 302) (4 (289 (293) -1 16 (295) (296) 304))))) (15 (289 (293) -1 16 (295) (296) 303) (289 (293) -1 16 (295) (296) 302) (43))) (15 (289 (293) -1 16 (295) (296) 303) (5 (289 (293) -1 16 (295) (296) 302) (4 (5 (289 (293) -1 16 (295) (296) 299) (4 (289 (293) -1 16 (295) (296) 301))))) (15 (289 (293) -1 16 (295) (296) 300) (289 (293) -1 16 (295) (296) 299) (43)))) -1 16 (295) (296) (297) (298) (306)) (292)); # wrap up both phases of simulation 13 307 -1 12 292 -1 14 293 (291 (292)) -1 305 (292) (293); # 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. 14 308 (16 (16 2 2 4 2 (43)) (16 4 2 6 2 (43)) (16 6 2 8 2 (43)) (16 6 4 6 2 (43))) -1 14 309 (16 (16 2 2 4 2 (43)) (16 4 2 6 2 (43)) (16 6 2 8 2 (44)) (16 6 4 6 2 (43))) -1 8 (307 (308)) (309); # 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 13 310 -1 26 (48 311) -1 14 312 (34 (48) 2) (15 (2 0 -1 311) (4 -1 2 (48) -1 9 2 -1 312) (310 (312) -1 11 (311) 1)); 2 0 -1 310 (::.) 0; 2 1 -1 310 (::.) 1; 2 1 -1 310 (::.) 2; 2 0 -1 310 (::.) 3; 2 0 -1 310 (::.) 4; 2 0 -1 310 8 0; 2 0 -1 310 8 1; 2 0 -1 310 8 2; 2 1 -1 310 8 3; 13 313 -1 26 (131 39 59) -1 16 (131) (39) (59); 13 314 -1 26 (315 316 317) -1 14 131 (62 (315) 0) -1 14 39 (62 (315) 1) -1 14 59 (62 (315) 2) -1 14 318 (62 (59) (316)) -1 310 (318) (11 (11 (39) (317)) 1); 13 319 -1 12 315 -1 62 (315) 0; 13 320 -1 12 315 -1 62 (315) 1; 13 321 -1 313 3 5 -1 16 (:....) (:...:) (:....); 2 3 (319 -1 321); 2 5 (320 -1 321); 2 (43) (314 (321) 0 0); 2 (44) (314 (321) 0 1); 2 (44) (314 (321) 0 4); 2 (43) (314 (321) 1 0); 2 (43) (314 (321) 2 0); 2 (43) (314 (321) 1 4); # need a way to join two lists 13 322 -1 12 207 -1 12 208 -1 (15 (3 (61 -1 207) 0) (63 (58 -1 207) (322 (60 -1 207) (208))) (208)); 13 323 -1 12 59 -1 (15 (3 (61 -1 59) 2) (322 (58 -1 59) (323 -1 60 -1 59)) (15 (2 (61 -1 59) 2) (322 (58 -1 59) -1 (58 -1 60 -1 59)) (15 (2 (61 -1 59) 1) (58 -1 59) (16)))); 8 (16 1 2 3 4) (322 (16 1 2) (16 3 4)); 8 (16 1 2 3 4) (323 (16 (16 1 2) (16 3) (16 4))); # helper for pairing 13 324 -1 12 37 -1 12 59 -1 85 (12 36 (16 (37) (36))) (59); 8 (16 (16 1 10) (16 1 11)) (324 1 (16 10 11)); # need a way to take product of domains 13 325 -1 12 207 -1 12 208 (15 (3 (61 -1 207) 0) (322 (324 (58 -1 207) (208)) (325 (60 -1 207) (208))) (16)); 8 (16 (16 1 10) (16 1 11) (16 2 10) (16 2 11)) (325 (16 1 2) (16 10 11)); # need a way to make counting sets 13 204 -1 12 326 -1 12 327 (15 (50 (326) (327)) (63 (326) (204 (10 (326) 1) (327))) (16)); 8 (16 0 1 2 3 4) (204 0 4); # given an image of a circuit, extract a model. # wire elements are centered on multiples of 8 # individual element... 13 328 -1 12 315 -1 12 329 -1 12 330 -1 12 331 -1 12 332 (15 (314 (315) (332) (331)) (14 333 (314 (315) (10 (332) 4) (331)) -1 14 334 (15 (333) 0 1) -1 14 335 (15 (333) 1 0) -1 14 336 (314 (315) (10 (332) -1 10 (9 4 -1 335) (9 2 -1 334)) (10 (331) -1 11 (9 4 -1 334) (9 2 -1 335))) -1 14 337 (15 (336) 1 (11 0 1)) -1 14 334 (9 (337) (334)) -1 14 335 (9 (337) (335)) -1 14 338 (314 (315) (10 (332) (334)) (11 (331) (335))) -1 (16 (16 (11 (329) (334)) (11 (330) (335)) (10 (329) (334)) (10 (330) (335)) (338)))) (16)); # full circuit... 13 339 -1 12 315 -1 14 131 (34 (319 -1 315) 8) -1 14 39 (34 (320 -1 315) 8) (323 (85 (12 173 -1 14 329 (62 (173) 0) -1 14 330 (62 (173) 1) -1 14 331 (9 8 -1 329) -1 14 332 (9 8 -1 330) -1 328 (315) (329) (330) (331) (332)) (325 (204 1 (11 (39) 1)) (204 1 (11 (131) 1))))); # 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 # 13 340 -1 16 (16 0 6 2 6 (43)) (16 2 6 4 6 (43)) (16 4 6 6 6 (43)) (16 6 6 8 6 (43)) (16 8 4 8 6 (43)) (16 8 6 8 8 (44)) (16 8 8 10 8 (44)) (16 10 8 12 8 (44)) (16 12 8 12 6 (44)) (16 12 6 14 6 (44)) (16 14 6 16 6 (44)) (16 16 6 18 6 (44)) (16 18 6 20 6 (44)); 13 341 -1 313 109 169 -1 16 (:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:..............................................................:::......................................................................................................:) (:..............................................................:::......................................................................................................:) (:..............................................................:::......................................................................................................:) (:..............................................................:::......................................................................................................:) (:..............................................................:::......................................................................................................:) (:..............................................................:::......................................................................................................:) (:..............................................................:::......................................................................................................:) (:..............................................................:::......................................................................................................:) (:..............................................................:::......................................................................................................:) (:.............................................................:::::.....................................................................................................:) (:..............................................................:::......................................................................................................:) (:...........:...............:...............:...............:...:...........................................:...............:...............:...............:...........:) (:..:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::..............................................::..............::..............::..............::..........:) (:..::::::::::::....::::::::::::....::::::::::::....::::::::::::....................................::::::::::::....::::::::::::....::::::::::::....::::::::::::.........:) (:..:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::..............................................::..............::..............::..............::..........:) (:...........:...............:...............:...............:...................................:...........:...............:...............:...............:...........:) (:...............................................................:..............................:::......................................................................:) (:...............................................................:.............................:::::.....................................................................:) (:...............................................................:...............................:.......................................................................:) (:...............................................................:...............................:.......................................................................:) (:...............................................................:...............................:.......................................................................:) (:...............................................................:...............................:.......................................................................:) (:...............................................................:...............................:.......................................................................:) (:...............................................................:...............................:.......................................................................:) (:...............................................................:...............................:.......................................................................:) (:.............................................................:::::.............................:.......................................................................:) (:..............................................................:::..............................:.......................................................................:) (:...............................................................:...........:...............:...........................................................................:) (:...........................................................................::..............::..........................................................................:) (:..................................................................::::::::::::....::::::::::::.........................................................................:) (:...........................................................................::..............::..........................................................................:) (:...........................................................................:...............:...........................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::); 8 (340) (339 (341)); # 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 # 13 342 -1 16 (16 0 2 2 2 (43)) (16 0 8 2 8 (43)) (16 2 2 4 2 (43)) (16 2 4 4 4 (43)) (16 2 6 4 6 (43)) (16 2 8 4 8 (43)) (16 4 2 4 4 (43)) (16 4 8 4 6 (43)) (16 4 4 6 4 (44)) (16 4 6 6 6 (44)) (16 6 4 8 4 (44)) (16 6 6 8 6 (44)) (16 8 4 10 4 (44)) (16 8 6 10 6 (44)) (16 10 2 10 4 (43)) (16 10 4 10 6 (43)) (16 10 6 10 8 (43)) (16 10 8 12 8 (43)) (16 12 8 14 8 (43)) (16 14 8 16 8 (43)) (16 16 8 18 8 (43)); 13 343 -1 313 88 153 -1 16 (:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:...........:...............:...........................................................................................................................:) (:..:::::::::::.....:::::::::::..........................................................................................................................:) (:..::::::::::::....::::::::::::.........................................................................................................................:) (:..:::::::::::.....:::::::::::..........................................................................................................................:) (:...........:...............:...........................................................................................................................:) (:..............................:::.............................................:::......................................................................:) (:..............................:::.............................................:::......................................................................:) (:..............................:::.............................................:::......................................................................:) (:..............................:::.............................................:::......................................................................:) (:..............................:::.............................................:::......................................................................:) (:..............................:::.............................................:::......................................................................:) (:..............................:::.............................................:::......................................................................:) (:..............................:::.............................................:::......................................................................:) (:..............................:::.............................................:::......................................................................:) (:.............................:::::...........................................:::::.....................................................................:) (:..............................:::.............................................:::......................................................................:) (:...........................:...:...........:...............:...............:...:.......................................................................:) (:..................:::::::::::..............::..............::..............::..........................................................................:) (:..................::::::::::::....::::::::::::....::::::::::::....::::::::::::.........................................................................:) (:..................:::::::::::..............::..............::..............::..........................................................................:) (:...........................:...............:...............:...............:...........................................................................:) (:..............................................................................:::......................................................................:) (:..............................................................................:::......................................................................:) (:..............................................................................:::......................................................................:) (:..............................................................................:::......................................................................:) (:..............................................................................:::......................................................................:) (:..............................................................................:::......................................................................:) (:..............................................................................:::......................................................................:) (:..............................................................................:::......................................................................:) (:..............................................................................:::......................................................................:) (:.............................................................................:::::.....................................................................:) (:..............................................................................:::......................................................................:) (:...........................:...............:...............:...............:...:.......................................................................:) (:..................:::::::::::..............::..............::..............::..........................................................................:) (:..................::::::::::::....::::::::::::....::::::::::::....::::::::::::.........................................................................:) (:..................:::::::::::..............::..............::..............::..........................................................................:) (:...........................:...:...........:...............:...............:...........................................................................:) (:..............................:::.............................................:::......................................................................:) (:.............................:::::............................................:::......................................................................:) (:..............................:::.............................................:::......................................................................:) (:..............................:::.............................................:::......................................................................:) (:..............................:::.............................................:::......................................................................:) (:..............................:::.............................................:::......................................................................:) (:..............................:::.............................................:::......................................................................:) (:..............................:::.............................................:::......................................................................:) (:..............................:::.............................................:::......................................................................:) (:..............................:::............................................:::::.....................................................................:) (:..............................:::.............................................:::......................................................................:) (:...........:...............:...................................................:...........:...............:...............:...............:...........:) (:..:::::::::::.....:::::::::::.....................................................:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::..........:) (:..::::::::::::....::::::::::::....................................................::::::::::::....::::::::::::....::::::::::::....::::::::::::.........:) (:..:::::::::::.....:::::::::::.....................................................:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::..........:) (:...........:...............:...............................................................:...............:...............:...............:...........:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:.......................................................................................................................................................:) (:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::); 8 (342) (339 (343)); # 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 # 13 344 -1 16 (16 2 4 4 4 (43)) (16 2 6 4 6 (43)) (16 4 4 6 4 (43)) (16 4 6 6 6 (43)) (16 6 4 8 4 (43)) (16 6 6 8 6 (43)) (16 8 4 10 4 (43)) (16 8 6 10 6 (43)) (16 8 8 10 8 (43)) (16 10 2 10 4 (43)) (16 10 4 10 6 (44)) (16 10 6 10 8 (44)) (16 10 8 12 8 (43)) (16 12 8 14 8 (43)) (16 14 8 16 8 (43)) (16 16 8 18 8 (43)); 13 345 -1 313 93 169 -1 16 (:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:..............................................................................:::......................................................................................:) (:..............................................................................:::......................................................................................:) (:..............................................................................:::......................................................................................:) (:..............................................................................:::......................................................................................:) (:..............................................................................:::......................................................................................:) (:..............................................................................:::......................................................................................:) (:..............................................................................:::......................................................................................:) (:..............................................................................:::......................................................................................:) (:..............................................................................:::......................................................................................:) (:.............................................................................:::::.....................................................................................:) (:..............................................................................:::......................................................................................:) (:...........................:...............:...............:...............:...:.......................................................................................:) (:..................:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::..........................................................................................:) (:..................::::::::::::....::::::::::::....::::::::::::....::::::::::::.........................................................................................:) (:..................:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::..........................................................................................:) (:...........................:...............:...............:...............:...........................................................................................:) (:...............................................................................:.......................................................................................:) (:...............................................................................:.......................................................................................:) (:...............................................................................:.......................................................................................:) (:...............................................................................:.......................................................................................:) (:...............................................................................:.......................................................................................:) (:...............................................................................:.......................................................................................:) (:...............................................................................:.......................................................................................:) (:...............................................................................:.......................................................................................:) (:...............................................................................:.......................................................................................:) (:.............................................................................:::::.....................................................................................:) (:..............................................................................:::......................................................................................:) (:...........................:...............:...............:...............:...:.......................................................................................:) (:..................:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::..........................................................................................:) (:..................::::::::::::....::::::::::::....::::::::::::....::::::::::::.........................................................................................:) (:..................:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::..........................................................................................:) (:...........................:...............:...............:...............:...........................................................................................:) (:...............................................................................:.......................................................................................:) (:...............................................................................:.......................................................................................:) (:...............................................................................:.......................................................................................:) (:...............................................................................:.......................................................................................:) (:...............................................................................:.......................................................................................:) (:...............................................................................:.......................................................................................:) (:...............................................................................:.......................................................................................:) (:...............................................................................:.......................................................................................:) (:...............................................................................:.......................................................................................:) (:.............................................................................:::::.....................................................................................:) (:..............................................................................:::......................................................................................:) (:...........................................................................:...:...........:...............:...............:...............:...........................:) (:..................................................................:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::..........................:) (:..................................................................::::::::::::....::::::::::::....::::::::::::....::::::::::::....::::::::::::.........................:) (:..................................................................:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::..........................:) (:...........................................................................:...............:...............:...............:...............:...........................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::); 8 (344) (339 (345)); # 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 # 13 346 -1 16 (16 0 6 2 6 (43)) (16 0 8 2 8 (43)) (16 2 6 4 6 (43)) (16 2 8 4 8 (43)) (16 4 6 6 6 (43)) (16 4 8 6 8 (43)) (16 6 6 8 6 (43)) (16 6 8 8 8 (43)) (16 8 4 8 6 (43)) (16 8 6 8 8 (44)) (16 8 8 8 10 (44)) (16 8 10 10 10 (44)) (16 10 10 12 10 (44)) (16 12 10 14 10 (44)) (16 14 10 16 10 (44)) (16 16 10 18 10 (44)) (16 18 10 20 10 (44)); 13 347 -1 313 125 169 -1 16 (:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:..............................................................:::......................................................................................................:) (:..............................................................:::......................................................................................................:) (:..............................................................:::......................................................................................................:) (:..............................................................:::......................................................................................................:) (:..............................................................:::......................................................................................................:) (:..............................................................:::......................................................................................................:) (:..............................................................:::......................................................................................................:) (:..............................................................:::......................................................................................................:) (:..............................................................:::......................................................................................................:) (:.............................................................:::::.....................................................................................................:) (:..............................................................:::......................................................................................................:) (:...........:...............:...............:...............:...:.......................................................................................................:) (:..:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::..........................................................................................................:) (:..::::::::::::....::::::::::::....::::::::::::....::::::::::::.........................................................................................................:) (:..:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::..........................................................................................................:) (:...........:...............:...............:...............:...........................................................................................................:) (:...............................................................:.......................................................................................................:) (:...............................................................:.......................................................................................................:) (:...............................................................:.......................................................................................................:) (:...............................................................:.......................................................................................................:) (:...............................................................:.......................................................................................................:) (:...............................................................:.......................................................................................................:) (:...............................................................:.......................................................................................................:) (:...............................................................:.......................................................................................................:) (:...............................................................:.......................................................................................................:) (:.............................................................:::::.....................................................................................................:) (:..............................................................:::......................................................................................................:) (:...........:...............:...............:...............:...:.......................................................................................................:) (:..:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::..........................................................................................................:) (:..::::::::::::....::::::::::::....::::::::::::....::::::::::::.........................................................................................................:) (:..:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::..........................................................................................................:) (:...........:...............:...............:...............:...........................................................................................................:) (:...............................................................:.......................................................................................................:) (:...............................................................:.......................................................................................................:) (:...............................................................:.......................................................................................................:) (:...............................................................:.......................................................................................................:) (:...............................................................:.......................................................................................................:) (:...............................................................:.......................................................................................................:) (:...............................................................:.......................................................................................................:) (:...............................................................:.......................................................................................................:) (:...............................................................:.......................................................................................................:) (:.............................................................:::::.....................................................................................................:) (:..............................................................:::......................................................................................................:) (:...............................................................:...........:...............:...............:...............:...............:...............:...........:) (:...........................................................................::..............::..............::..............::..............::..............::..........:) (:..................................................................::::::::::::....::::::::::::....::::::::::::....::::::::::::....::::::::::::....::::::::::::.........:) (:...........................................................................::..............::..............::..............::..............::..............::..........:) (:...........................................................................:...............:...............:...............:...............:...............:...........:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::); 8 (346) (339 (347)); # 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 # 13 348 -1 16 (16 4 8 6 8 (43)) (16 6 8 8 8 (43)) (16 8 6 8 8 (43)) (16 10 6 8 6 (43)) (16 8 8 10 8 (44)) (16 12 6 10 6 (44)) (16 10 8 12 8 (44)) (16 12 8 12 6 (44)) (16 12 8 14 8 (44)) (16 14 8 16 8 (44)); 13 349 -1 313 120 169 -1 16 (:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:...................................................................:...............:...................................................................................:) (:..................................................................:::::::::::.....::...................................................................................:) (:.................................................................::::::::::::....::::::::::::..........................................................................:) (:..................................................................:::::::::::.....::...................................................................................:) (:...................................................................:...............:...........:.......................................................................:) (:..............................................................:::.............................:::......................................................................:) (:..............................................................:::............................:::::.....................................................................:) (:..............................................................:::..............................:.......................................................................:) (:..............................................................:::..............................:.......................................................................:) (:..............................................................:::..............................:.......................................................................:) (:..............................................................:::..............................:.......................................................................:) (:..............................................................:::..............................:.......................................................................:) (:..............................................................:::..............................:.......................................................................:) (:..............................................................:::..............................:.......................................................................:) (:.............................................................:::::.............................:.......................................................................:) (:..............................................................:::..............................:.......................................................................:) (:...........................................:...............:...:...........:...............:...............:...............:...........................................:) (:..................................:::::::::::.....:::::::::::..............::..............::..............::..............::..........................................:) (:..................................::::::::::::....::::::::::::....::::::::::::....::::::::::::....::::::::::::....::::::::::::.........................................:) (:..................................:::::::::::.....:::::::::::..............::..............::..............::..............::..........................................:) (:...........................................:...............:...............:...............:...............:...............:...........................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::); 8 (348) (339 (349)); # 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 # 13 350 -1 16 (16 0 2 2 2 (43)) (16 0 8 2 8 (43)) (16 2 2 4 2 (43)) (16 2 8 4 8 (43)) (16 4 2 6 2 (43)) (16 4 6 6 6 (43)) (16 4 8 6 8 (43)) (16 6 8 6 6 (43)) (16 6 2 8 2 (43)) (16 6 6 8 6 (44)) (16 8 4 8 6 (44)) (16 8 2 10 2 (43)) (16 10 4 8 4 (44)) (16 8 6 10 6 (44)) (16 10 6 10 8 (44)) (16 10 2 12 2 (43)) (16 12 4 10 4 (44)) (16 10 6 12 6 (44)) (16 10 8 12 8 (44)) (16 12 6 12 4 (44)) (16 12 2 14 2 (43)) (16 14 4 12 4 (44)) (16 12 8 14 8 (44)) (16 14 2 14 4 (43)) (16 16 4 14 4 (43)) (16 14 8 16 8 (44)) (16 16 8 18 8 (44)) (16 18 8 20 8 (44)); 13 351 -1 313 88 169 -1 16 (:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:...........:...............:...............:...............:...............:...............:...............:...........................................................:) (:..:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::..........................................................:) (:..::::::::::::....::::::::::::....::::::::::::....::::::::::::....::::::::::::....::::::::::::....::::::::::::.........................................................:) (:..:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::..........................................................:) (:...........:...............:...............:...............:...............:...............:...............:...........................................................:) (:..............................................................................................................:::......................................................:) (:..............................................................................................................:::......................................................:) (:..............................................................................................................:::......................................................:) (:..............................................................................................................:::......................................................:) (:..............................................................................................................:::......................................................:) (:..............................................................................................................:::......................................................:) (:..............................................................................................................:::......................................................:) (:..............................................................................................................:::......................................................:) (:..............................................................................................................:::......................................................:) (:.............................................................................................................:::::.....................................................:) (:..............................................................................................................:::......................................................:) (:...................................................................:...............:...............:...........:...:...................................................:) (:..................................................................::..............::..............::..............:::::::::::..........................................:) (:.................................................................::::::::::::....::::::::::::....::::::::::::....::::::::::::..........................................:) (:..................................................................::..............::..............::..............:::::::::::..........................................:) (:...................................................................:...............:...........:...:...............:...................................................:) (:...............................................................:..............................:::......................................................................:) (:...............................................................:.............................:::::.....................................................................:) (:...............................................................:...............................:.......................................................................:) (:...............................................................:...............................:.......................................................................:) (:...............................................................:...............................:.......................................................................:) (:...............................................................:...............................:.......................................................................:) (:...............................................................:...............................:.......................................................................:) (:...............................................................:...............................:.......................................................................:) (:...............................................................:...............................:.......................................................................:) (:.............................................................:::::.............................:.......................................................................:) (:..............................................................:::..............................:.......................................................................:) (:...........................................:...............:...:...........:...............:...........................................................................:) (:..................................:::::::::::..............::..............::..............::..........................................................................:) (:..................................::::::::::::....::::::::::::....::::::::::::....::::::::::::.........................................................................:) (:..................................:::::::::::..............::..............::..............::..........................................................................:) (:...........................................:...:...........:...............:...............:...........................................................................:) (:..............................................:::..............................:.......................................................................................:) (:.............................................:::::.............................:.......................................................................................:) (:..............................................:::..............................:.......................................................................................:) (:..............................................:::..............................:.......................................................................................:) (:..............................................:::..............................:.......................................................................................:) (:..............................................:::..............................:.......................................................................................:) (:..............................................:::..............................:.......................................................................................:) (:..............................................:::..............................:.......................................................................................:) (:..............................................:::..............................:.......................................................................................:) (:..............................................:::............................:::::.....................................................................................:) (:..............................................:::.............................:::......................................................................................:) (:...........:...............:...............:...................................:...........:...............:...............:...............:...............:...........:) (:..:::::::::::.....:::::::::::.....:::::::::::..............................................::..............::..............::..............::..............::..........:) (:..::::::::::::....::::::::::::....::::::::::::....................................::::::::::::....::::::::::::....::::::::::::....::::::::::::....::::::::::::.........:) (:..:::::::::::.....:::::::::::.....:::::::::::..............................................::..............::..............::..............::..............::..........:) (:...........:...............:...............:...............................................:...............:...............:...............:...............:...........:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::); 8 (350) (339 (351)); # 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 # 13 352 -1 16 (16 0 2 2 2 (43)) (16 0 6 2 6 (43)) (16 2 2 4 2 (43)) (16 2 6 4 6 (43)) (16 4 2 6 2 (43)) (16 4 6 6 6 (43)) (16 6 2 8 2 (43)) (16 6 6 8 6 (43)) (16 8 2 10 2 (43)) (16 8 6 10 6 (43)) (16 10 6 10 4 (43)) (16 10 10 10 8 (43)) (16 10 2 12 2 (43)) (16 10 4 12 4 (43)) (16 10 6 12 6 (43)) (16 10 8 12 8 (43)) (16 12 10 10 10 (43)) (16 12 0 12 2 (43)) (16 12 2 12 4 (44)) (16 12 6 12 8 (43)) (16 12 10 12 12 (43)) (16 12 4 14 4 (43)) (16 12 8 14 8 (44)) (16 14 10 12 10 (43)) (16 12 12 14 12 (43)) (16 14 0 14 2 (43)) (16 14 2 14 4 (43)) (16 14 4 14 6 (44)) (16 14 6 14 8 (44)) (16 14 8 14 10 (44)) (16 16 10 14 10 (43)) (16 14 12 16 12 (43)) (16 16 12 18 12 (43)) (16 18 12 20 12 (43)); 13 353 -1 313 109 169 -1 16 (:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:..............................................................................................:::.............:::......................................................:) (:..............................................................................................:::.............:::......................................................:) (:..............................................................................................:::.............:::......................................................:) (:..............................................................................................:::.............:::......................................................:) (:..............................................................................................:::.............:::......................................................:) (:..............................................................................................:::.............:::......................................................:) (:..............................................................................................:::.............:::......................................................:) (:..............................................................................................:::.............:::......................................................:) (:..............................................................................................:::.............:::......................................................:) (:.............................................................................................:::::...........:::::.....................................................:) (:..............................................................................................:::.............:::......................................................:) (:...........:...............:...............:...............:...............:...............:...:...............:.......................................................:) (:..:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::..........................................................................:) (:..::::::::::::....::::::::::::....::::::::::::....::::::::::::....::::::::::::....::::::::::::.........................................................................:) (:..:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::..........................................................................:) (:...........:...............:...............:...............:...............:...............:...........................................................................:) (:...............................................................................................:..............:::......................................................:) (:...............................................................................................:..............:::......................................................:) (:...............................................................................................:..............:::......................................................:) (:...............................................................................................:..............:::......................................................:) (:...............................................................................................:..............:::......................................................:) (:...............................................................................................:..............:::......................................................:) (:...............................................................................................:..............:::......................................................:) (:...............................................................................................:..............:::......................................................:) (:...............................................................................................:..............:::......................................................:) (:.............................................................................................:::::...........:::::.....................................................:) (:..............................................................................................:::.............:::......................................................:) (:...........................................................................................:...:...........:...:.......................................................:) (:..................................................................................:::::::::::.....:::::::::::..........................................................:) (:..................................................................................::::::::::::....::::::::::::.........................................................:) (:..................................................................................:::::::::::.....:::::::::::..........................................................:) (:...............................................................................:...........:...............:...........................................................:) (:..............................................................................:::..............................:.......................................................:) (:.............................................................................:::::.............................:.......................................................:) (:..............................................................................:::..............................:.......................................................:) (:..............................................................................:::..............................:.......................................................:) (:..............................................................................:::..............................:.......................................................:) (:..............................................................................:::..............................:.......................................................:) (:..............................................................................:::..............................:.......................................................:) (:..............................................................................:::..............................:.......................................................:) (:..............................................................................:::..............................:.......................................................:) (:..............................................................................:::............................:::::.....................................................:) (:..............................................................................:::.............................:::......................................................:) (:...........:...............:...............:...............:...............:...............:...................:.......................................................:) (:..:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::..........................................................................:) (:..::::::::::::....::::::::::::....::::::::::::....::::::::::::....::::::::::::....::::::::::::.........................................................................:) (:..:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::..........................................................................:) (:...........:...............:...............:...............:...............:...............:...........................................................................:) (:..............................................................................................:::..............:.......................................................:) (:..............................................................................................:::..............:.......................................................:) (:..............................................................................................:::..............:.......................................................:) (:..............................................................................................:::..............:.......................................................:) (:..............................................................................................:::..............:.......................................................:) (:..............................................................................................:::..............:.......................................................:) (:..............................................................................................:::..............:.......................................................:) (:..............................................................................................:::..............:.......................................................:) (:..............................................................................................:::..............:.......................................................:) (:.............................................................................................:::::...........:::::.....................................................:) (:..............................................................................................:::.............:::......................................................:) (:...........................................................................................:...:...........:...:.......................................................:) (:..................................................................................:::::::::::..............::..........................................................:) (:..................................................................................::::::::::::....::::::::::::.........................................................:) (:..................................................................................:::::::::::..............::..........................................................:) (:...............................................................................:...........:...............:...........................................................:) (:..............................................................................:::..............................:.......................................................:) (:.............................................................................:::::.............................:.......................................................:) (:..............................................................................:::..............................:.......................................................:) (:..............................................................................:::..............................:.......................................................:) (:..............................................................................:::..............................:.......................................................:) (:..............................................................................:::..............................:.......................................................:) (:..............................................................................:::..............................:.......................................................:) (:..............................................................................:::..............................:.......................................................:) (:..............................................................................:::..............................:.......................................................:) (:..............................................................................:::............................:::::.....................................................:) (:..............................................................................:::.............................:::......................................................:) (:...................................................................................:...............:...........:...:...................................................:) (:..................................................................................:::::::::::.....:::::::::::.....:::::::::::..........................................:) (:.................................................................................::::::::::::....::::::::::::....::::::::::::..........................................:) (:..................................................................................:::::::::::.....:::::::::::.....:::::::::::..........................................:) (:...................................................................................:...............:...............:...................................................:) (:..............................................................................................:::......................................................................:) (:..............................................................................................:::......................................................................:) (:..............................................................................................:::......................................................................:) (:..............................................................................................:::......................................................................:) (:..............................................................................................:::......................................................................:) (:..............................................................................................:::......................................................................:) (:..............................................................................................:::......................................................................:) (:..............................................................................................:::......................................................................:) (:..............................................................................................:::......................................................................:) (:.............................................................................................:::::.....................................................................:) (:..............................................................................................:::......................................................................:) (:...............................................................................................:...........:...............:...............:...............:...........:) (:..................................................................................................:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::..........:) (:..................................................................................................::::::::::::....::::::::::::....::::::::::::....::::::::::::.........:) (:..................................................................................................:::::::::::.....:::::::::::.....:::::::::::.....:::::::::::..........:) (:...........................................................................................................:...............:...............:...............:...........:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:.......................................................................................................................................................................:) (:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::); 8 (352) (339 (353)); # GATE probing networks of unless gates 13 354 -1 12 292 -1 12 355 -1 12 159 -1 14 356 (62 (292) (355)) (85 (12 39 (15 (8 (39) (356)) (16 (62 (39) 0) (62 (39) 1) (62 (39) 2) (62 (39) 3) (159)) (39))) (292)); 13 357 -1 12 292 -1 12 355 -1 14 358 (61 -1 292) -1 14 356 (62 (292) -1 11 (11 (358) 1) (355)) -1 62 (356) 4; 13 359 -1 12 292 -1 12 360 -1 12 361 (15 (3 (360) 0) (359 (307 (361 -1 292)) (11 (360) 1) (361)) (292)); 13 362 -1 12 292 -1 12 361 -1 359 (292) (61 -1 292) (361); # test cos_not gate 13 363 -1 12 37 -1 14 109 (340) -1 14 109 (362 (109) (12 109 (354 (109) 0 (37)))) -1 357 (109) 0; 2 (44) -1 363 -1 43; 2 (43) -1 363 -1 44; # test cos_and gate 13 364 -1 12 37 -1 12 36 -1 14 109 (342) -1 14 109 (362 (109) (12 109 (354 (354 (109) 0 (37)) 1 (36)))) -1 357 (109) 0; 2 (44) -1 364 (44) (44); 2 (44) -1 364 (44) (43); 2 (44) -1 364 (43) (44); 2 (43) -1 364 (43) (43); # 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 0 365; # 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. 0 35; # this line is referred to later - change/move carefully 8 (62 (35) 0) (16 0 1); 8 (62 (35) 1) (16 0 2); 8 (62 (35) 2) (16 0 3); 14 70 (71 (35) (16 0 35) (12 37 0)) (8 (62 (35) (10 (70) 1)) (16 8 (16 62 (16 35) 0) (16 16 0 1))); # 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. # Message is pretty solid up to this point. # For testing purposes, useful to save state here to disk, # command: DISK-SAVE base # JAVA some preparatory work for integrating with Java code 216 366 () (147 367 (26 (37) (10 (37) 1))) (147 224 (26 (37) (37))) (147 368 (152)) (147 369 (152)) (147 223 366) (147 370 (215 225)) (147 371 (152 370)) (147 372 (43)) (147 373 (43)); 13 374 -1 366; 13 372 -1 12 37 -1 43; #(class java-string () # (field super (java-object new)) # (method classname String) # (method unknown (lambda (x) (super (x))))); # inconsistency of various kinds of equality throughout message # needs to be cleaned up 216 375 () (221 203 (374 200)) (221 159 (231 200 0)) (147 369 (152)) (147 368 (152)) (147 376 (26 (173) (128 (159 235 (173)) (152)))) (147 377 (159 234)) (147 378 (152 377)) (147 370 (26 (379) (15 (2 (379 223) 375) (2 (159 234) (379 159 234)) (44)))) (147 371 (152 370)) (147 234 (159 234)) (147 235 (26(37) (159 235 (15 (24 -1 37) (37) (37 378))))) (147 223 375) (147 224 (26 (37) (203 (37)))); # string is basically the same as an integer 216 380 () (221 203 (374 200)) (221 159 (231 200 0)) (147 369 (152)) (147 368 (152)) (147 381 (26 (173) (128 (159 235 (173 159 234)) (152)))) (147 382 (26 (37) (128 (159 235 (37)) (152)))) (147 377 (159 234)) (147 378 (152 377)) (147 234 (159 234)) (147 235 (26(37) (159 235 (15 (24 -1 37) (37) (37 378))))) (147 370 (26 (379) (15 (2 (379 223) 380) (2 (159 234) (379 159 234)) (44)))) (147 371 (152 370)) (147 223 380) (147 224 (26 (37) (203 (37)))); # will need to install class hierarchy, just hardcode a few things for now 13 383 (12 37 -1 12 36 -1 (181 ((2 (36) 380) (380)) ((2 (36) 366) (374)) ((2 (36) 375) (375)) (374))); (383 384 380) 200 373; 2 ((383 384 380) 200 367 15) 16; 216 385 () (221 203 (374 200)) (147 224 (26 (37) (203 (37)))) (221 386 (231 200 0)) (147 234 (386 234)) (147 387 (26 (173) (128 (152 235 (173)) (152)))) (147 235 (26 (173) (386 235 (173)))); 13 388 (385); 13 389 (385); 13 390 (385); 13 391 (385); 13 174 (385); 13 392 (385); 13 393 (385); 13 394 (385); 13 395 (385); 13 396 (174 200); 396 235 15; 2 15 (396 234); 13 397 (174 200 387 17); 2 17 (397 234); 13 398 (12 37 (181 ((2 (37) 1) 20) ((2 (37) 2) 40) ((2 (37) 3) 60) 0)); 2 (398 3) 60; # really ought to go back and be clear about eager/laziness issues 13 399 (12 37 (181 ((2 (37) 1) (396 235 20)) ((2 (37) 2) (396 235 40)) ((2 (37) 3) (396 235 60)) 0)); 399 2; 2 (396 234) 40; 13 400 (26 (401 402) (15 (24 -1 401) (24 -1 402) (2 (401 220) (402 220)))); 13 403 (26 (404 405 406 56) (12 407 (128 (406 235 (10 (406 234) 1)) -1 181 ((2 (407) 200) (26 (408) (409 (405) ((408) 200)))) ((2 (407) 410) (409 (405) (411 (405)))) ((2 (407) 412) (26 (178) 1)) ((6 (2 (407) 413) (2 (407) 414)) (26 (355) (404 235 (130 (404 234) (355) (415 (405)))))) ((6 (2 (407) 416) (2 (407) 417)) (26 (355) (409 (405) (132 (404 234) (355))))) ((6 (2 (407) 418) (2 (407) 419)) (26 (420) (409 (405) (420)))) ((2 (407) 421) (409 (405) 0)) ((2 (407) 176) (26 (178) (409 (405) (4 -1 24 -1 (415 -1 405) (178 200 223))))) ((2 (407) 422) (26 (68 423) (409 (405) ((415 (405)) (68) 234)))) ((2 (407) 424) (26 (68 423) (77 ((420 (415 (405)))) ((415 (405)) (68) 235 (420))))) ((2 (407) 425) (77 ((426 (415 (405)))) (77 ((427 (415 (405)))) (409 (405) (9 (427) (426)))))) ((2 (407) 428) (77 ((426 (415 (405)))) (77 ((427 (415 (405)))) (409 (405) (10 (427) (426)))))) ((2 (407) 429) (77 ((426 (415 (405)))) (77 ((427 (415 (405)))) (409 (405) (11 (427) (426)))))) ((2 (407) 430) (26 (37) (406 235 (37)))) ((2 (407) 431) (26 (37) (15 (1 (415 (405)) 0) (406 235 (37)) 0))) ((2 (407) 432) (26 (37) (15 (1 (415 (405)) 1) (406 235 (37)) 0))) ((2 (407) 433) (26 (37) (15 (3 (415 (405)) 0) (406 235 (37)) 0))) ((2 (407) 434) (26 (37) (15 (49 (415 (405)) 0) (406 235 (37)) 0))) ((2 (407) 435) (26 (37) (15 (4 (2 (415 (405)) 0)) (406 235 (37)) 0))) ((2 (407) 436) (26 (37) (15 (2 (415 (405)) 0) (406 235 (37)) 0))) ((2 (407) 437) (77 ((426 (415 (405)))) (77 ((427 (415 (405)))) (26 (37) (15 (4 (2 (427) (426))) (406 235 (37)) 0))))) ((2 (407) 438) (77 ((426 (415 (405)))) (77 ((427 (415 (405)))) (26 (37) (15 (2 (427) (426)) (406 235 (37)) 0))))) ((2 (407) 439) (77 ((426 (415 (405)))) (77 ((427 (415 (405)))) (26 (37) (15 (4 (400 (427) (426))) (406 235 (37)) 0))))) ((2 (407) 440) (77 ((426 (415 (405)))) (77 ((427 (415 (405)))) (26 (37) (15 (400 (427) (426)) (406 235 (37)) 0))))) ((2 (407) 441) (77 ((426 (415 (405)))) (77 ((427 (415 (405)))) (26 (37) (15 (49 (427) (426)) (406 235 (37)) 0))))) ((2 (407) 442) (77 ((426 (415 (405)))) (77 ((427 (415 (405)))) (26 (37) (15 (3 (427) (426)) (406 235 (37)) 0))))) ((2 (407) 443) (77 ((426 (415 (405)))) (77 ((427 (415 (405)))) (26 (37) (15 (50 (427) (426)) (406 235 (37)) 0))))) ((2 (407) 444) (77 ((426 (415 (405)))) (77 ((427 (415 (405)))) (26 (37) (15 (1 (427) (426)) (406 235 (37)) 0))))) ((2 (407) 445) (26 (37) (15 (24 -1 415 (405)) (406 235 (37)) 0))) ((2 (407) 446) (26 (37) (15 (4 (24 -1 415 (405))) (406 235 (37)) 0))) ((2 (407) 187) (128 (56 235 (132 (404 234) 0)) (406 235 447))) ((2 (407) 448) (128 (56 235 (415 (405))) (406 235 447))) ((2 (407) 449) (128 (56 235 (415 (405))) (406 235 447))) ((2 (407) 430) (26 (450) (406 235 (450)))) ((2 (407) 451) (26 (450 287 48) (77 ((452 (453 (405) (450) (287)))) (15 (2 (48) 1) (409 (405) (452)) 0)))) ((2 (407) 454) (26 (450 287 48 423) (77 ((452 (453 (405) (450) (287)))) (15 (2 (48) 1) (409 (405) (452)) 0)))) ((2 (407) 455) (26 (450 287 48) (77 ((452 (456 (405) (132 (404 234) 0) (450) (287)))) (15 (2 (48) 1) (409 (405) (452)) 0)))) 0))); 13 453 (26 (405 450 457) (15 (2 (457) 0) ((415 (405)) (450)) (77 ((458 (415 (405)))) ((453 (405) (450) (11 (457) 1)) (458))))); 13 456 (26 (405 152 450 457) (15 (2 (457) 0) (77 ((372 (415 -1 405))) (15 (372 225 (152)) (372 203 (450)) (372 (450)))) (77 ((458 (415 (405)))) ((456 (405) (152) (450) (11 (457) 1)) (458))))); 13 409 (26 (405 37) (405 235 (63 (37) (405 234)))); 13 415 (26 (405) (77 ((173 (58 (405 234)))) (128 (405 235 (60 (405 234))) (173)))); 13 411 (26 (405) (58 (405 234))); 13 459 (231 200 (16 5 3 1)); 2 (415 (459)) 5; 2 (411 (459)) 3; 2 (415 (459)) 3; 409 (459) 7; 2 (415 (459)) 7; 13 460 (231 200 (133)); 13 461 (231 200 0); 13 462 (231 200 0); 13 463 (403 (460) (459) (461) (462)); 409 (459) 4; 463 410; 2 (415 (459)) 4; 2 (415 (459)) 4; 409 (459) 66; 409 (459) 77; 463 413 3; 2 (415 (459)) 66; 463 416 3; 2 (415 (459)) 77; 216 464 () (221 37 ((174) 200)) (221 36 ((174) 200)); 13 465 (464 200); 465 37 235 5; 2 (465 37 234) 5; 409 (459) (465); 2 ((415 (459)) 37 234) 5; 409 (459) (465); 463 413 0; 463 416 0; 463 422 37 (174); 2 (415 (459)) 5; 463 416 0; 463 418 15; 463 424 36 (174); 2 (465 36 234) 15; 409 (459) 7; 409 (459) 10; 463 425; 463 448; 2 (462 234) 70; 13 466 -1 12 467 -1 26 (404 405 161) -1 77 ((406 (231 200 (467))) (56 (231 200 (43)))) -1 77 ((468 (403 (404) (405) (406) (56)))) -1 (128 (161 (468) (406 234)) (15 (2 (406 234) 447) (56 234) (466 (406 234) (404) (405) (161)))); 13 469 (466 0); 409 (459) 10; 409 (459) 33; 2 (469 (460) (459) -1 12 468 -1 12 37 -1 (181 ((2 (37) 0) (468 414 4)) ((2 (37) 1) (468 417 4)) (468 448))) 33; 409 (459) 10; 13 470 (26 (471 472) -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 0) (52 1 (471)) (52 2 (472))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 417 1)) ((2 (37) 1) (468 417 2)) ((2 (37) 2) (468 425)) ((2 (37) 3) (468 448)) (468 187)); 2 (470 5 9) 45; # JAVA class translation 'COS_JavaTest' # Thu Jun 30 17:00:06 EDT 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; # } # } # 216 473 () (221 230 (27 0)) (147 200 (28 (230) ((383 474 366) -1 215))) (147 203 (12 37 -1 (29 -1 230) -1 37)) (147 224 (12 37 -1 152 203 -1 37)) (221 475 ((174) 200)) (147 368 (26 () -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 416 0)) ((2 (37) 1) (468 455 368 0 0)) ((2 (37) 2) (468 416 0)) ((2 (37) 3) (468 418 0)) ((2 (37) 4) (468 424 475 (174))) ((2 (37) 5) (468 187)) (468 187)) ) (147 369 (152 368)) (147 476 (26 (471 472) -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152)) (52 1 (471)) (52 2 (472))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 417 1)) ((2 (37) 1) (468 417 2)) ((2 (37) 2) (468 428)) ((2 (37) 3) (468 448)) (468 187)) ) (147 100 (152 476)) (147 477 (26 (471 472) -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152)) (52 1 (471)) (52 2 (472))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 417 1)) ((2 (37) 1) (468 417 2)) ((2 (37) 2) (468 429)) ((2 (37) 3) (468 448)) (468 187)) ) (147 478 (152 477)) (147 479 (26 (471 472) -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152)) (52 1 (471)) (52 2 (472))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 417 1)) ((2 (37) 1) (468 417 2)) ((2 (37) 2) (468 425)) ((2 (37) 3) (468 448)) (468 187)) ) (147 103 (152 479)) (147 480 (26 (471 472 481) -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152)) (52 1 (471)) (52 2 (472)) (52 3 (481))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 416 0)) ((2 (37) 1) (468 417 1)) ((2 (37) 2) (468 416 0)) ((2 (37) 3) (468 417 2)) ((2 (37) 4) (468 417 3)) ((2 (37) 5) (468 451 479 2 1)) ((2 (37) 6) (468 451 476 2 1)) ((2 (37) 7) (468 448)) (468 187)) ) (147 482 (152 480)) (147 483 (26 (471) -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152)) (52 1 (471))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 416 0)) ((2 (37) 1) (468 417 1)) ((2 (37) 2) (468 424 475 (174))) ((2 (37) 3) (468 187)) (468 187)) ) (147 235 (152 483)) (147 484 (26 () -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 416 0)) ((2 (37) 1) (468 422 475 (174))) ((2 (37) 2) (468 448)) (468 187)) ) (147 234 (152 484)) (147 485 (26 (471) -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152)) (52 1 (471))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 417 1)) ((2 (37) 1) (468 432 11)) ((2 (37) 2) (468 417 1)) ((2 (37) 3) (468 416 0)) ((2 (37) 4) (468 416 0)) ((2 (37) 5) (468 417 1)) ((2 (37) 6) (468 418 1)) ((2 (37) 7) (468 451 477 2 1)) ((2 (37) 8) (468 451 485 1 1)) ((2 (37) 9) (468 425)) ((2 (37) 10) (468 430 12)) ((2 (37) 11) (468 418 1)) ((2 (37) 12) (468 448)) (468 187)) ) (147 486 (152 485)) ; # JAVA check that automatic conversion is workable 13 487 (473 200); # Note that the names of methods include type information. # This could easily be removed, but is retained so that overloading # is possible in the Java code. # I is integer, V is void. The last type in the name is the return type. 2 (487 479 15 10) 150; # The type information can be safely omitted if there is no ambiguity 2 (487 103 15 10) 150; 2 (487 480 4 15 10) 154; 128 (487 483 87) (2 (487 484) 87); 2 (487 485 0) 1; 2 (487 485 1) 1; 2 (487 485 5) 120; # Yay! testing says this works. # So structure for bytecode interpretation is in place. # Very few opcodes actually implemented yet though. # MUD another simple little text-adventure space # let us try to make a slightly more interesting world 13 488 (26 (59) (87 (12 37 -1 12 131 -1 14 146 (22 -1 37) -1 14 188 (23 -1 37) -1 130 (131) (146) (188)) (209 (133) (59)))); # note, the quoted strings below are just represented as a big number, # nothing special 13 489 (488 (85 (12 146 (21 (146) (243 200 (146)))) (16 108230817902446 110455325223278 482671225203 444083367777))); 13 490 (85 (12 491 (14 242 (22 -1 491) -1 14 244 (23 -1 491) -1 241 200 (489 -1 242) (489 -1 244))) (16 (21 108230817902446 110455325223278) (21 110455325223278 482671225203) (21 108230817902446 482671225203) (21 482671225203 444083367777))); 13 279 (270 200); 279 260 (489 110455325223278); 8 (279 262 146) 110455325223278; 279 265; 8 (279 262 146) 108230817902446; 279 265; 8 (279 262 146) 482671225203; 279 265; 8 (279 262 146) 110455325223278; 279 265; 8 (279 262 146) 108230817902446; 279 265; 8 (279 262 146) 482671225203; 279 265; 8 (279 262 146) 444083367777; # all characters should update together 216 492 (493 494) (221 495 (195 200)) (221 496 (231 200 (133))) (221 497 (231 200 0)) (221 120 (231 200 0)) (147 200 (128 (497 235 (488 (85 (12 146 (21 (146) (243 200 (146)))) (493)))) (120 235 (85 (12 491 (14 242 (22 -1 491) -1 14 244 (23 -1 491) -1 241 200 (497 234 -1 242) (497 234 -1 244))) (494))))) (147 100 (26 (498 146 420) (128 (420 260 (497 234 -1 498)) (420 263 -1 146) (496 235 (130 (496 234) (146) (420))) (495 100 (420))))) (147 499 (26 (48) (496 234 (48) 262 146))) (147 500 (26 (498) (77 ((273 (210 (26 (37) (176 241 (37))) (497 234 (498) 197)))) (85 (12 241 (241 245 (497 234 -1 498) 146)) (273))))) (147 265 (128 (85 (12 37 (37 265)) (495 197)) (43))); 13 501 (492 200 (16 108230817902446 110455325223278 482671225203 444083367777) (16 (21 108230817902446 110455325223278) (21 110455325223278 482671225203) (21 108230817902446 482671225203) (21 482671225203 444083367777))); 501 100 110455325223278 491494993713 (270 200); 501 100 444083367777 491494993714 (270 200); 8 (501 499 491494993713) 110455325223278; 8 (501 499 491494993714) 444083367777; 501 265; 8 (501 499 491494993713) 108230817902446; 8 (501 499 491494993714) 482671225203; 8 (501 500 108230817902446) -1 16 110455325223278 482671225203; 8 (501 500 444083367777) -1 16 482671225203; # JAVA native implementation of a Java list, hash classes 13 502 (26 (37 36) (15 (24 -1 37) (15 (24 -1 36) (2 (37) (36)) (44)) (15 (24 -1 36) (44) (37 371 (36))))); 13 503 (26 (37) (184 (26 (36) (502 (37) (36))))); 13 504 (26 (37 59) (15 (3 (61 -1 59) 0) (15 (502 (58 -1 59) (37)) (43) (504 (37) (60 -1 59))) (44))); 216 505 () (221 203 ((383 474 366) 200)) (147 224 (26 (37) (203 (37)))) (221 196 (231 200 (16))) (147 368 (152)) (147 369 (152 368)) (147 506 (26 (37) (196 235 (63 (37) (196 234))))) (147 100 (152 506)) (147 507 (26 (37) (196 235 (503 (37) (196 234))))) (147 198 (152 507)) (147 508 (26 (37) (504 (37) (196 234)))) (147 509 (152 508)) (147 510 (26 (37) (62 (196 234) (37)))) (147 234 (152 510)) (147 511 (512 200 (152))) (147 513 (152 511)) (147 514 (61 (196 234))) (147 515 (152 514)); 13 487 (505 200); 128 (487 506 (487)) (2 1 -1 487 514); 487 225 (487 510 0); 216 516 () (221 203 ((383 474 366) 200)) (147 224 (26 (37) (203 (37)))) (221 196 (231 200 (12 37 0))) (147 368 (152)) (147 369 (152 368)) (147 517 (26 (37 36) (77 ((82 -1 196 234)) (196 235 (12 38 (15 (502 (38) (37)) (36) (82 (38)))))))) (147 518 (152 517)) (147 519 (26 (37) (196 234 (37)))) (147 234 (152 519)); 13 520 (516 200); 128 (520 517 5 10) (2 10 -1 520 234 5); # There is Java code for COS_JList available # There is Java code for COS_JHashMap available # JAVA testing the JList class 13 487 (505 200); 128 (487 506 (487)) (2 1 (487 514)); (487 510 0) 225 (487); # JAVA basic iterator implementation 216 512 (521) (221 522 (231 200 (521 196 234))) (147 368 (152)) (147 369 (152 368)) (147 523 (3 (61 -1 522 234) 0)) (147 524 (152 523)) (147 163 (152 525)) (147 525 (77 ((452 (58 -1 522 234))) (128 (522 235 -1 60 -1 522 234) (452)))); 13 487 (505 200); 128 (487 100 15) (487 100 72) (487 100 99) (43); 13 526 (487 513); 526 524; 8 (526 163) 99; 526 524; 8 (526 163) 72; 526 524; 8 (526 163) 15; 4 -1 526 524; # There is Java code for COS_JListIterator available # JAVA class translation 'COS_JDoor' # Thu Jun 30 17:00:10 EDT 2005 # Produced by Fritzifier, based on JasminVisitor # Using BCEL library to read Java bytecode # Here is the original code: # # public class COS_JDoor { # private COS_JRoom src, dest; # private String src_cmd, dest_cmd; # # public COS_JDoor(COS_JRoom src, String src_cmd, # COS_JRoom dest, String dest_cmd) { # this.src = src; # this.dest = dest; # this.src_cmd = src_cmd; # this.dest_cmd = dest_cmd; # src.addDoor(this); # dest.addDoor(this); # } # # public COS_JRoom apply(COS_JRoom src, String cmd) { # if (src == this.src) { # if (src_cmd.equals(cmd)) { # return this.dest; # } # } # if (src == this.dest) { # if (dest_cmd.equals(cmd)) { # return this.src; # } # } # return null; # } # # public COS_JRoom apply(COS_JRoom src) { # if (src==this.src) { # return this.dest; # } # if (src==this.dest) { # return this.src; # } # return null; # } # } 216 527 () (221 230 (27 0)) (147 200 (28 (230) ((383 474 366) -1 215))) (147 203 (12 37 -1 (29 -1 230) -1 37)) (147 224 (12 37 -1 152 203 -1 37)) (221 242 (231 200 0)) (221 244 (231 200 0)) (221 528 (231 200 0)) (221 529 (231 200 0)) (147 530 (26 (471 472 481 531) -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152)) (52 1 (471)) (52 2 (472)) (52 3 (481)) (52 4 (531))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 416 0)) ((2 (37) 1) (468 455 368 0 0)) ((2 (37) 2) (468 416 0)) ((2 (37) 3) (468 416 1)) ((2 (37) 4) (468 424 242 (532))) ((2 (37) 5) (468 416 0)) ((2 (37) 6) (468 416 3)) ((2 (37) 7) (468 424 244 (532))) ((2 (37) 8) (468 416 0)) ((2 (37) 9) (468 416 2)) ((2 (37) 10) (468 424 528 (383 474 380))) ((2 (37) 11) (468 416 0)) ((2 (37) 12) (468 416 4)) ((2 (37) 13) (468 424 529 (383 474 380))) ((2 (37) 14) (468 416 1)) ((2 (37) 15) (468 416 0)) ((2 (37) 16) (468 451 533 1 0)) ((2 (37) 17) (468 416 3)) ((2 (37) 18) (468 416 0)) ((2 (37) 19) (468 451 533 1 0)) ((2 (37) 20) (468 187)) (468 187)) ) (147 369 (152 530)) (147 534 (26 (471 472) -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152)) (52 1 (471)) (52 2 (472))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 416 1)) ((2 (37) 1) (468 416 0)) ((2 (37) 2) (468 422 242 (532))) ((2 (37) 3) (468 439 12)) ((2 (37) 4) (468 416 0)) ((2 (37) 5) (468 422 528 (383 474 380))) ((2 (37) 6) (468 416 2)) ((2 (37) 7) (468 451 370 1 1)) ((2 (37) 8) (468 436 12)) ((2 (37) 9) (468 416 0)) ((2 (37) 10) (468 422 244 (532))) ((2 (37) 11) (468 449)) ((2 (37) 12) (468 416 1)) ((2 (37) 13) (468 416 0)) ((2 (37) 14) (468 422 244 (532))) ((2 (37) 15) (468 439 24)) ((2 (37) 16) (468 416 0)) ((2 (37) 17) (468 422 529 (383 474 380))) ((2 (37) 18) (468 416 2)) ((2 (37) 19) (468 451 370 1 1)) ((2 (37) 20) (468 436 24)) ((2 (37) 21) (468 416 0)) ((2 (37) 22) (468 422 242 (532))) ((2 (37) 23) (468 449)) ((2 (37) 24) (468 421)) ((2 (37) 25) (468 449)) (468 187)) ) (147 84 (152 534)) (147 535 (26 (471) -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152)) (52 1 (471))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 416 1)) ((2 (37) 1) (468 416 0)) ((2 (37) 2) (468 422 242 (532))) ((2 (37) 3) (468 439 7)) ((2 (37) 4) (468 416 0)) ((2 (37) 5) (468 422 244 (532))) ((2 (37) 6) (468 449)) ((2 (37) 7) (468 416 1)) ((2 (37) 8) (468 416 0)) ((2 (37) 9) (468 422 244 (532))) ((2 (37) 10) (468 439 14)) ((2 (37) 11) (468 416 0)) ((2 (37) 12) (468 422 242 (532))) ((2 (37) 13) (468 449)) ((2 (37) 14) (468 421)) ((2 (37) 15) (468 449)) (468 187)) ) ; # JAVA class translation 'COS_JThing' # Thu Jun 30 17:00:13 EDT 2005 # Produced by Fritzifier, based on JasminVisitor # Using BCEL library to read Java bytecode # Here is the original code: # # public class COS_JThing extends COS_JNamed { # private COS_JRoom location; # private COS_JRoom nextLocation; # # public void setRoom(COS_JRoom location) { # if (this.location!=null) { # this.location.removeThing(this); # } # this.location = location; # location.addThing(this); # this.nextLocation = location; # } # # public COS_JRoom getRoom() { # return location; # } # # public void setNextRoom(COS_JRoom location) { # nextLocation = location; # } # # public void postUpdate() { # if (nextLocation!=location) { # setRoom(nextLocation); # } # } # } # 216 536 () (221 230 (27 0)) (147 200 (28 (230) ((537) -1 215))) (147 203 (12 37 -1 (29 -1 230) -1 37)) (147 224 (12 37 -1 152 203 -1 37)) (221 259 (231 200 0)) (221 538 (231 200 0)) (147 368 (26 () -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 416 0)) ((2 (37) 1) (468 455 368 0 0)) ((2 (37) 2) (468 187)) (468 187)) ) (147 369 (152 368)) (147 539 (26 (471) -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152)) (52 1 (471))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 416 0)) ((2 (37) 1) (468 422 259 (532))) ((2 (37) 2) (468 445 7)) ((2 (37) 3) (468 416 0)) ((2 (37) 4) (468 422 259 (532))) ((2 (37) 5) (468 416 0)) ((2 (37) 6) (468 451 540 1 0)) ((2 (37) 7) (468 416 0)) ((2 (37) 8) (468 416 1)) ((2 (37) 9) (468 424 259 (532))) ((2 (37) 10) (468 416 1)) ((2 (37) 11) (468 416 0)) ((2 (37) 12) (468 451 541 1 0)) ((2 (37) 13) (468 416 0)) ((2 (37) 14) (468 416 1)) ((2 (37) 15) (468 424 538 (532))) ((2 (37) 16) (468 187)) (468 187)) ) (147 542 (152 539)) (147 543 (26 () -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 416 0)) ((2 (37) 1) (468 422 259 (532))) ((2 (37) 2) (468 449)) (468 187)) ) (147 544 (152 543)) (147 545 (26 (471) -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152)) (52 1 (471))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 416 0)) ((2 (37) 1) (468 416 1)) ((2 (37) 2) (468 424 538 (532))) ((2 (37) 3) (468 187)) (468 187)) ) (147 546 (152 545)) (147 547 (26 () -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 416 0)) ((2 (37) 1) (468 422 538 (532))) ((2 (37) 2) (468 416 0)) ((2 (37) 3) (468 422 259 (532))) ((2 (37) 4) (468 440 9)) ((2 (37) 5) (468 416 0)) ((2 (37) 6) (468 416 0)) ((2 (37) 7) (468 422 538 (532))) ((2 (37) 8) (468 451 539 1 0)) ((2 (37) 9) (468 187)) (468 187)) ) (147 548 (152 547)) ; # JAVA class translation 'COS_JRoom' # Thu Jun 30 17:00:16 EDT 2005 # Produced by Fritzifier, based on JasminVisitor # Using BCEL library to read Java bytecode # Here is the original code: # # import java.util.Iterator; # # public class COS_JRoom extends COS_JNamed { # private COS_JList content = new COS_JList(); # private COS_JList doors = new COS_JList(); # # public COS_JList get() { # return content; # } # # public Iterator getDoors() { # return doors.iterator(); # } # # public void addDoor(COS_JDoor door) { # //System.out.println("add door -> " + getName()); # doors.add(door); # } # # public void addThing(COS_JThing thing) { # content.add(thing); # } # # public void removeThing(COS_JThing thing) { # content.remove(thing); # } # } 216 532 () (221 230 (27 0)) (147 200 (28 (230) ((537) -1 215))) (147 203 (12 37 -1 (29 -1 230) -1 37)) (147 224 (12 37 -1 152 203 -1 37)) (221 233 (231 200 0)) (221 549 (231 200 0)) (147 368 (26 () -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 416 0)) ((2 (37) 1) (468 455 368 0 0)) ((2 (37) 2) (468 416 0)) ((2 (37) 3) (468 200 (505))) ((2 (37) 4) (468 410)) ((2 (37) 5) (468 455 368 0 0)) ((2 (37) 6) (468 424 233 (505))) ((2 (37) 7) (468 416 0)) ((2 (37) 8) (468 200 (505))) ((2 (37) 9) (468 410)) ((2 (37) 10) (468 455 368 0 0)) ((2 (37) 11) (468 424 549 (505))) ((2 (37) 12) (468 187)) (468 187)) ) (147 369 (152 368)) (147 550 (26 () -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 416 0)) ((2 (37) 1) (468 422 233 (505))) ((2 (37) 2) (468 449)) (468 187)) ) (147 234 (152 550)) (147 551 (26 () -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 416 0)) ((2 (37) 1) (468 422 549 (505))) ((2 (37) 2) (468 451 511 0 1)) ((2 (37) 3) (468 449)) (468 187)) ) (147 552 (152 551)) (147 533 (26 (471) -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152)) (52 1 (471))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 416 0)) ((2 (37) 1) (468 422 549 (505))) ((2 (37) 2) (468 416 1)) ((2 (37) 3) (468 451 506 1 0)) ((2 (37) 4) (468 187)) (468 187)) ) (147 553 (152 533)) (147 541 (26 (471) -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152)) (52 1 (471))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 416 0)) ((2 (37) 1) (468 422 233 (505))) ((2 (37) 2) (468 416 1)) ((2 (37) 3) (468 451 506 1 0)) ((2 (37) 4) (468 187)) (468 187)) ) (147 554 (152 541)) (147 540 (26 (471) -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152)) (52 1 (471))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 416 0)) ((2 (37) 1) (468 422 233 (505))) ((2 (37) 2) (468 416 1)) ((2 (37) 3) (468 451 507 1 1)) ((2 (37) 4) (468 555)) ((2 (37) 5) (468 187)) (468 187)) ) (147 556 (152 540)) ; # JAVA class translation 'COS_JNamed' # Thu Jun 30 17:00:19 EDT 2005 # Produced by Fritzifier, based on JasminVisitor # Using BCEL library to read Java bytecode # Here is the original code: # # public class COS_JNamed { # private String name = "-"; # private COS_JWorld world = null; # # void setName(String name) { # this.name = name; # } # # String getName() { # return name; # } # # void setWorld(COS_JWorld world) { # this.world = world; # } # # COS_JWorld getWorld() { # return world; # } # # void update() { # } # # void postUpdate() { # } # } 216 537 () (221 230 (27 0)) (147 200 (28 (230) ((383 474 366) -1 215))) (147 203 (12 37 -1 (29 -1 230) -1 37)) (147 224 (12 37 -1 152 203 -1 37)) (221 146 (231 200 0)) (221 492 (231 200 0)) (147 368 (26 () -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 416 0)) ((2 (37) 1) (468 455 368 0 0)) ((2 (37) 2) (468 416 0)) ((2 (37) 3) (468 419 (380 200 382 45))) ((2 (37) 4) (468 424 146 (383 474 380))) ((2 (37) 5) (468 416 0)) ((2 (37) 6) (468 421)) ((2 (37) 7) (468 424 492 (557))) ((2 (37) 8) (468 187)) (468 187)) ) (147 369 (152 368)) (147 558 (26 (471) -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152)) (52 1 (471))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 416 0)) ((2 (37) 1) (468 416 1)) ((2 (37) 2) (468 424 146 (383 474 380))) ((2 (37) 3) (468 187)) (468 187)) ) (147 559 (152 558)) (147 560 (26 () -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 416 0)) ((2 (37) 1) (468 422 146 (383 474 380))) ((2 (37) 2) (468 449)) (468 187)) ) (147 561 (152 560)) (147 562 (26 (471) -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152)) (52 1 (471))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 416 0)) ((2 (37) 1) (468 416 1)) ((2 (37) 2) (468 424 492 (557))) ((2 (37) 3) (468 187)) (468 187)) ) (147 563 (152 562)) (147 564 (26 () -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 416 0)) ((2 (37) 1) (468 422 492 (557))) ((2 (37) 2) (468 449)) (468 187)) ) (147 565 (152 564)) (147 566 (26 () -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 187)) (468 187)) ) (147 265 (152 566)) (147 547 (26 () -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 187)) (468 187)) ) (147 548 (152 547)) ; # JAVA class translation 'COS_JWorld' # Thu Jun 30 17:00:22 EDT 2005 # Produced by Fritzifier, based on JasminVisitor # Using BCEL library to read Java bytecode # Here is the original code: # # import java.util.Iterator; # # public class COS_JWorld { # private COS_JHashMap content = new COS_JHashMap(); # private COS_JList inventory = new COS_JList(); # # public void add(COS_JNamed named, String name) { # named.setName(name); # content.put(named.getName(),named); # inventory.add(named); # } # # public COS_JNamed get(String name) { # return (COS_JNamed)content.get(new String(name)); # } # # public void update() { # for (Iterator i = inventory.iterator(); i.hasNext(); ) { # COS_JNamed o = (COS_JNamed) i.next(); # o.update(); # } # for (Iterator i = inventory.iterator(); i.hasNext(); ) { # COS_JNamed o = (COS_JNamed) i.next(); # o.postUpdate(); # } # } # } 216 557 () (221 230 (27 0)) (147 200 (28 (230) ((383 474 366) -1 215))) (147 203 (12 37 -1 (29 -1 230) -1 37)) (147 224 (12 37 -1 152 203 -1 37)) (221 233 (231 200 0)) (221 197 (231 200 0)) (147 368 (26 () -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 416 0)) ((2 (37) 1) (468 455 368 0 0)) ((2 (37) 2) (468 416 0)) ((2 (37) 3) (468 200 (516))) ((2 (37) 4) (468 410)) ((2 (37) 5) (468 455 368 0 0)) ((2 (37) 6) (468 424 233 (516))) ((2 (37) 7) (468 416 0)) ((2 (37) 8) (468 200 (505))) ((2 (37) 9) (468 410)) ((2 (37) 10) (468 455 368 0 0)) ((2 (37) 11) (468 424 197 (505))) ((2 (37) 12) (468 187)) (468 187)) ) (147 369 (152 368)) (147 567 (26 (471 472) -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152)) (52 1 (471)) (52 2 (472))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 416 1)) ((2 (37) 1) (468 416 2)) ((2 (37) 2) (468 451 558 1 0)) ((2 (37) 3) (468 416 0)) ((2 (37) 4) (468 422 233 (516))) ((2 (37) 5) (468 416 1)) ((2 (37) 6) (468 451 560 0 1)) ((2 (37) 7) (468 416 1)) ((2 (37) 8) (468 451 517 2 0)) ((2 (37) 9) (468 416 0)) ((2 (37) 10) (468 422 197 (505))) ((2 (37) 11) (468 416 1)) ((2 (37) 12) (468 451 506 1 0)) ((2 (37) 13) (468 187)) (468 187)) ) (147 100 (152 567)) (147 568 (26 (471) -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152)) (52 1 (471))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 416 0)) ((2 (37) 1) (468 422 233 (516))) ((2 (37) 2) (468 200 (383 474 380))) ((2 (37) 3) (468 410)) ((2 (37) 4) (468 416 1)) ((2 (37) 5) (468 455 381 1 0)) ((2 (37) 6) (468 451 519 1 1)) ((2 (37) 7) (468 412 (537))) ((2 (37) 8) (468 449)) (468 187)) ) (147 234 (152 568)) (147 566 (26 () -1 77 ((404 -1 231 200 -1 137 -1 16 (52 0 (152))) (405 -1 231 200 -1 16)) -1 469 (404) (405) -1 12 468 -1 12 37 -1 181 ((2 (37) 0) (468 416 0)) ((2 (37) 1) (468 422 197 (505))) ((2 (37) 2) (468 451 511 0 1)) ((2 (37) 3) (468 413 1)) ((2 (37) 4) (468 416 1)) ((2 (37) 5) (468 454 523 0 1 1)) ((2 (37) 6) (468 436 14)) ((2 (37) 7) (468 416 1)) ((2 (37) 8) (468 454 525 0 1 1)) ((2 (37) 9) (468 412 (537))) ((2 (37) 10) (468 413 2)) ((2 (37) 11) (468 416 2)) ((2 (37) 12) (468 451 566 0 0)) ((2 (37) 13) (468 430 4)) ((2 (37) 14) (468 416 0)) ((2 (37) 15) (468 422 197 (505))) ((2 (37) 16) (468 451 511 0 1)) ((2 (37) 17) (468 413 1)) ((2 (37) 18) (468 416 1)) ((2 (37) 19) (468 454 523 0 1 1)) ((2 (37) 20) (468 436 28)) ((2 (37) 21) (468 416 1)) ((2 (37) 22) (468 454 525 0 1 1)) ((2 (37) 23) (468 412 (537))) ((2 (37) 24) (468 413 2)) ((2 (37) 25) (468 416 2)) ((2 (37) 26) (468 451 547 0 0)) ((2 (37) 27) (468 430 18)) ((2 (37) 28) (468 187)) (468 187)) ) (147 265 (152 566)) ; # JAVA class translation 'COS_JRobo' # Thu Jun 30 17:00:24 EDT 2005 # Produced by Fritzifier, based on JasminVisitor # Using BCEL library to read Java bytecode # Here is the original code: # # import java.util.Iterator; # # public class COS_JRobo extends COS_JThing { # private COS_JHashMap times = new COS_JHashMap(); # private int now = 1; # public void update() { # COS_JRoom location = getRoom(); # //System.out.println("Updating robo..."); # if (location!=null) { # int oldestTime = now; # COS_JDoor oldestDoor = null; # for (Iterator i = location.getDoors(); i.hasNext(); ) { # COS_JDoor door = (COS_JDoor) i.next(); # //System.out.println(" scanning door "); # Integer t = (Integer)times.get(door); # int v = 0; # if (t!=null) { # v = t.intValue(); # } # if (v