On the Relation of Computing to the World William J. Rapaport Department of Computer Science & Engineering, Department of Philosophy, Department of Linguistics, and Center for Cognitive Science rapaport@buffalo.edu http://www.cse.buffalo.edu/~rapaport Thanks • To IACAP for this honor! • To Preston Covey, for early inspiration • My journey: – from Meinong & Philosophy of Mind – to AI & Philosophy of Computer Science Philosophy of Computer Science • What is CS? – Science? • What is science? – Engineering? • What is engineering? – Both? – Neither? Philosophy of Computer Science • What is CS the scientific study of? – Computers? • What is a computer? – Computation? • What is computation? Algorithm? Recipe? • Church-Turing Computability Thesis • Hypercomputation Philosophy of Computer Science • What is a computer program? – Implementation of an algorithm? • What is implementation? – – – – Relation of program to what it simulates/models SW vs. HW © vs. ℗ Program verification Philosophy of Computer Science • Philosophy of AI – Turing test – Chinese room • Computer Ethics – Should we trust decisions made by computers? – Should we build AIs? • Other topics not covered: – information – social uses of computers, etc. Computing & the World • Common theme found in most of these topics • Is computing about: – the world? – or descriptions of the world? • Overview of these issues • More questions than answers (semantic) (syntactic) Some Preliminaries • • • • What is CS? Thought experimental data Input-Output What is an algorithm? Computing & the World • CS ≈ scientific study of: – – – – what can be computed how it can be computed how it can be computed efficiently how physical computers can be engineered to do this • 2 “what” questions: – “Narrow” / theoretical: • what mathematical functions are computable? – “Wide” / practical: • what real-world tasks are computable? Thought-Experiment Data • Rey’s & Fodor’s chess-wargame computer(s) – 1 algorithm? Or 2? – cf. Necker cube! • Cleland’s hollandaise sauce recipe – Is it computable? – Works on Earth, fails on Moon • Rescorla’s GCD program in bases 10 & 13 – Does it compute GCD? Thought-Experiment Data • Winston’s blocks-world program – Robotic implementation drops blocks – Behaves as “intended”? • Spreadsheet instructions to naïve user – Is “blindly” entering data into cells “adding”? Input & Output • What is the role of a TM tape? – I-O device? – internal memory? • Is tape qua I-O device necessary? – TMs don’t accept external-world I/P! – TM begins with all data pre-stored on tape • then computes • final result is stored on tape – not necessarily reported to external world! Input & Output • Any external-world I/P would have to be – encoded by user / decoded by TM • Any external-world O/P would have to be – encoded by TM / decoded by user • Coding uses an (algorithmic) semantic interpretation • more on this later… What Is an Algorithm? • Algorithm (for E) [to accomplish G] is: – a procedure P • finite set of statements such that each S is: – composed of finite # of “symbols” from finite alphabet – unambiguous (for E) » (E “knows how” to do S » E can do S » S can be done in finite time » after doing S, E “knows” what to do next) – P takes finite time – [P ends with G accomplished] What Is an Algorithm? • Algorithm (for E) [to accomplish G] is: – a procedure P • finite set of statements such that each S is: – composed of finite # of “symbols” from finite alphabet – unambiguous (for E) » (E “knows how” to do S » E can do S » S can be done in finite time » after doing S, E “knows” what to do next) – P takes finite time – [P ends with G accomplished] What Is an Algorithm? • Algorithm (for E) [to accomplish G] is: – a procedure P • finite set of statements such that each S is: – composed of finite # of “symbols” from finite alphabet – unambiguous (for E) » (E “knows how” to do S » E can do S » S can be done in finite time » after doing S, E “knows” what to do next) – P takes finite time – [P ends with G accomplished] Must Algorithms Be Intentional / Teleological? • No – Fodor: – Dennett: computations are “formal” Turing’s “strange inversion” • Don’t have to know arithmetic in order to be a computer that does arithmetic • Spreadsheet adds w/o my knowing what I’m doing • Searle-in-CR understands Chinese w/o understanding that he’s understanding it Must Algorithms Be Intentional / Teleological? • Yes – Robin Hill: • Not just: • But: Do P To accomplish G, do P – and David Marr… David Marr’s 3 Levels of Information Processing • “computational” level: – specification of what a system does – e.g., mathematical-functional level: f(i) = o • “algorithmic” level: – how (theoretically) – i.e., computational-algorithmic level: Af (i) = o • “implementation” level: – how (physically): I(Af)(i) = o – I = brain, computer, beer cans/levers/windmills… David Marr’s 3 Levels • Is Marr’s “computational” level teleological? – Egan: No (“Do f”) – Anderson: Yes (“To G, do f”) – Shagrir & Bechtel: Yes & no • “computational”-“what” level: • “computational”-“why” level: math-functional teleological Algorithms Can Be Multiply Teleological • To G1, do P • To G2, do P – If G1 ≠ G2 & G1 !≤ G2, then 2 algorithms? – But only 1 P, so only 1 algorithm? • chess-wargame computer Can P Succeed but G Fail? • Examples: – blocks-world robot – HS recipe on Moon – GCD in base 13 • Wide, external-semantic perspective: – HS fails on Moon (even if recipe verifiable) – GCD in base 13 doesn’t compute GCD (?) • Narrow, internal, syntactic perspective: – HS works on Moon (even if produces goop) – both GCDs work, but only one is usable (?) • Differences due to I-O interpretations (G-P interface), not due to P itself 4 Neo-Marrian Levels • • • • “what” level: Do f(i) = o “why” level: To G, do f(i) = o “algorithm” level: To G, do Af(i) = o “implementation” level: To G, do I(Af)(i) = o • NB: The “to” and “do” clauses can vary independently – of course: – but also: one G, many A one f or A, many G (multiple realizations) (as we’ve seen) Do We Compute with Symbols or Meanings? • TM: with symbols (numerals, not numbers) – we need algorithmic semantic interpretation – (recursive functions: with numbers & functions) • If we compute with symbols, then: – chess-wargame computer is 1 algorithm – HS works on Moon • If we compute with meanings, then: – chess-wargame computer uses 2 algorithms – HS fails on Moon Do We Compute with Symbols or Meanings? • Piccinini − 2 questions: – “Which TM is this?” • has only 1 (syntactic) answer • = my neo-Marrian “what” level – “What does this TM do?” • has n+1 answers: – 1 syntactic answer – n semantic answers (for n different Gs) • = my neo-Marrian “why” level • Piccinini’s patterns vs. colors: – Loom that weaves (outputs) pattern p does so independently of input thread colors c • algorithm is insensitive to input • if p = pattern above, then: if c = (red, white, blue), then O/P = else if c = (red, black, green), then O/P= – “Is p more important than c?” --- wrong question • If just want p, then c unimportant • If want American flag, use c=RWB; – need specific I/P Syntactic Semantics • Usually: – ‘syntax’ = grammar of a language – ‘semantics’ = relation of syntax to meanings/world • Morris: – syntax = properties & relations of elements of 1 set • internal, local, narrow: intra-system – semantics = relations between elements of 2 sets • external, global, wide: extra-system / inter-system • “what”-level P (f or A) can be identified syntactically • “why”-level G needs to be identified semantically – then P can be interpreted semantically in G’s terms 2 Ways to Get Syntactic Semantics 1. Named subroutines – repeat 4 [forward 1 right 90] – to square repeat 4 [forward 1 right 90] end – turnleft;turnleft;turnleft – DEFINE-NEW-INSTRUCTION turnright AS BEGIN turnleft;turnleft;turnleft END 1. Named Subroutines • McDermott’s Warning: – The name is meaningless! – Unless linked to concepts / objects external to program • external semantics – Or linked to other parts internal to program • syntactic semantics • Syntactic semantics ≈ Rescorla’s “indigenous” semantics – causal, rather than conceptual-role – “intra-system” semantics 2 Ways to Obtain Syntactic Semantics 2. Internalization: – Can turn external semantic relations into internal syntax (syntactic semantics) – by internalizing semantic domain into syntactic domain SYN DOM • • Syntax SYN DOM SYN DOM • • • • Syntax SEM DOM • • Semantics SYN DOM SYN DOM Syntax • • SEM DOM • • • • Semantics • • • • Syntactic semantics Internalization via Perception • Perception = I/P encoding – Brain: • interpretation of external world in biological neural net – TM “perception”: • interpretation of external (user) I/P on tape – That interpretation becomes part of TM/brain’s intra-system, syntactic/indigenous semantics SYN DOM SEM DOM • • extra-system semantics • • I/P encoding • • TM or mind/brain • • intra-system semantics TM tape / biological neural net / mental concepts representing external semantic domain S.C.Shapiro’s Internalization Tactic • Algorithms are teleological & narrow! “To G, do P” must include everything: – – – To make HS on Earth, do P To find GCD in base 10, do Q To play chess, do R, where R’s vars range over chess pieces & chess board – To simulate wargame battle, do R, where R’s vars range over soldiers & battlefield • Cf. Deduction Thm: G |- P equiv |- if G then P • Once all of G has been internalized as pre/postconditions of P, then can formally verify even teleological algorithms – modulo Fetzer’s worry… (later) Hypercomputation • Interactive, reactive, oracle computation – TMs don’t accept I/P from external world, but interactive oracle computers do! • Can simulate I/A computer by statically pre-storing all I/P – Kleene Substitution/Recursion • But computers must act in the world – Interaction requires dynamic I-O & interpretation – giving rise to G-P “slippage” Program Verification • Internalization & syntactic/indigenous semantics allows for program verification of teleological algorithms • But there are limits: – Fetzer’s limit: real world can “break” – B.C.Smith’s limit: • syntactic computers deal with representations of (partial) models of world – twice removed from reality • no way to verify that the model is correct – there’s a “gap” between model & world – akin to Church-Turing Computability Thesis “gap” between formal & informal Concluding Remarks • Either: Can distinguish between: – algorithms – algorithms for accomplishing G – G & P can vary independently (P) (To G, do P) • Or: – all P accomplish some G – some Gs are more “interesting” than others – Ps with uninteresting Gs may become useful • cf. non-Euclidean geometry, Hilbert spaces, etc. Concluding Remarks • Mathematical computation theory studies P • To decide if G is computable, – need to find appropriate, computable P – some P can accomplish multiple Gs – some P may be verifiable but fail to G because of real-world interface (I-O encoding) – at that interface, we face Smith’s gap • But computer will still act in real world – whether it does what was intended is another matter! – there are no “partial functions” in the real world! Concluding Remarks • Can make teleological algorithms more likely to succeed by… • Internalizing G into P – Converts explicit “To G, do P” to P (with implicit G) – Can internalize by: • expressing G as pre-/post-conditions of P – “specs can & should be embedded as comments in code” » Leslie Lamport, CACM 2015 • expressing G using named subroutines (modules) – uses syntactic/indigenous semantics – can connect to external/inherited semantics Concluding Remarks • My goal: – To show how “computing & the world” permeates the philosophy of computer science • I have raised more questions than I have answered • That’s what philosophy is supposed to do!