THE STRONG INVARIANCE THESIS

Size: px
Start display at page:

Download "THE STRONG INVARIANCE THESIS"

Transcription

1 THE STRONG INVARIANCE THESIS FOR A λ-calculus LOLA WORKSHOP 2017 Yannick Forster 1 Fabian Kunze 1,2 Marc Roth 1,3 1 SAARLAND UNIVERSITY 2 MAX PLANCK INSTITUTE FOR INFORMATICS 3 CLUSTER OF EXCELLENCE (MMCI)

2 TURING MACHINES 2

3 TURING MACHINES (PROS) easy to imagine easy to explain de-facto the standard model of computation for computation theory and complexity theory 3

4 TURING MACHINES (CONS) Notoriously hard to reason about (in a formally precise way): not compositional tedious encodings no nice abstractions for verification (e.g. no separation logic) Formalisation of Computability Theory is out of reach Formalisation of Complexity Theory is even further away 4

5 EXEMPLARY RELATED WORK Ugo Dal Lago and Simone Martini The Weak Lambda Calculus as a Reasonable Machine Theoretical Computer Science, 2008 Beniamino Accattoli and Ugo Dal Lago (Leftmost-Outermost) Beta Reduction is Invariant, Indeed Logical Methods in Computer Science,

6 EXEMPLARY RELATED WORK Ugo Dal Lago and Simone Martini The Weak Lambda Calculus as a Reasonable Machine Theoretical Computer Science, 2008 Beniamino Accattoli and Ugo Dal Lago (Leftmost-Outermost) Beta Reduction is Invariant, Indeed Logical Methods in Computer Science, 2016 Andrea Asperti and Wilmer Ricciotti A formalization of multi-tape Turing machines Theoretical Computer Science,

7 ANOTHER MODEL OF COMPUTATION A certain flavour of λ-calculus called L compositional straightforward encodings of data types equational reasoning for verification Formalisation for Computability theory Yannick Forster and Gert Smolka Weak Call-by-Value Lambda Calculus as a Model of Computation in Coq ITP 2017 Reasonable with respect to time [Dal Lago, Martini (2008)] Reasonable with respect to space? 6

8 THE INVARIANCE THESIS (Strong) Invariance Thesis Reasonable machines can simulate each other within a polynomially bounded overhead in time and a constant-factor overhead in space. [Slot, van Emde Boas (1998)] 7

9 THE INVARIANCE THESIS (Strong) Invariance Thesis Reasonable machines can simulate each other within a polynomially bounded overhead in time and a constant-factor overhead in space. Ensures consistency w.r.t classes closed under poly-time/constant-space reductions. [Slot, van Emde Boas (1998)] 7

10 CONTRIBUTION Simple time and space measures for L substitution-based interpreter with constant-factor overhead in space heap-based interpreter with polynomially bounded overhead in time hybrid interpreter fulfilling the strong invariance thesis 8

11 CONTRIBUTION Theorem (Strong Invariance Thesis for L) L and Turing Machines can simulate each other within a polynomially bounded overhead in time and a constant-factor overhead in space for decision functions with non-sublinear running time. 9

12 L: WEAK CALL-BY-VALUE λ-calculus s, t ::= x λx.s s t (λx.s)(λy.t) s[x := λy.t] s s st s t t t st st uniformly confluent (reductions to normal forms have the same length) data represented by abstractions (Scott encoding) recursion using fixed-point combinator [Dal Lago, Martini (2008)] 10

13 TIME MEASURE If s = s 0 s 1 s k then Time(s) := k i.e. the number of β-reduction steps 11

14 SPACE MEASURE Space(s) := max s i {s i s s i } i.e. size of the largest intermediate term of the reduction for x = de Bruijn index of x st = 1 + s + t λx.s = 1 + s 12

15 DEFINITION OF TURING MACHINE a finite type of states Q a transition function δ : Q Σ n+1 Q Σ n+1 {L, N, R} a start state s : Q a halting function Q B Semantics: Loop δ until a halting state is reached. [Asperti, Ricciotti (2015)], [Dal Lago, Martini (2008)] 13

16 DEFINITION OF TURING MACHINE a finite type of states Q a transition function δ : Q Σ n+1 Q Σ n+1 {L, N, R} a start state s : Q a halting function Q B Semantics: Loop δ until a halting state is reached. Encode δ and halting function using Scott encodings (linear size, polynomial operations) and loop. [Asperti, Ricciotti (2015)], [Dal Lago, Martini (2008)] 13

17 DEFINITION OF TURING MACHINE a finite type of states Q a transition function δ : Q Σ n+1 Q Σ n+1 {L, N, R} a start state s : Q a halting function Q B Semantics: Loop δ until a halting state is reached. Encode δ and halting function using Scott encodings (linear size, polynomial operations) and loop. In Coq: Generation and verification of L-code from functional specification is automatic with our framework. Time-complexity of the extract is semi-automatic. Space-complexity has to be done by hand. [Asperti, Ricciotti (2015)], [Dal Lago, Martini (2008)] 13

18 Theorem (Invariance thesis part I) L can simulate Turing machines with a polynomially bounded overhead in time and a constant-factor overhead in space. 14

19 EXAMPLE: EVALUATING BY SUBSTITUTION Let I := λx.x: (λxy.x x) I ((λxy.x x)ii) 15

20 EXAMPLE: EVALUATING BY SUBSTITUTION Let I := λx.x: (λxy.x x) I ((λxy.x x)ii) (λy.i I) ((λxy.x x)ii) 15

21 EXAMPLE: EVALUATING BY SUBSTITUTION Let I := λx.x: (λxy.x x) I ((λxy.x x)ii) (λy.i I) ((λxy.x x)ii) (λy.i I) ((λy.ii)i) 15

22 EXAMPLE: EVALUATING BY SUBSTITUTION Let I := λx.x: (λxy.x x) I ((λxy.x x)ii) (λy.i I) ((λxy.x x)ii) (λy.i I) ((λy.ii)i) (λy.i I) (I I) 15

23 EXAMPLE: EVALUATING BY SUBSTITUTION Let I := λx.x: (λxy.x x) I ((λxy.x x)ii) (λy.i I) ((λxy.x x)ii) (λy.i I) ((λy.ii)i) (λy.i I) (I I) (λy.i I)I 15

24 EXAMPLE: EVALUATING BY SUBSTITUTION Let I := λx.x: (λxy.x x) I ((λxy.x x)ii) (λy.i I) ((λxy.x x)ii) (λy.i I) ((λy.ii)i) (λy.i I) (I I) (λy.i I)I I I 15

25 EXAMPLE: EVALUATING BY SUBSTITUTION Let I := λx.x: (λxy.x x) I ((λxy.x x)ii) (λy.i I) ((λxy.x x)ii) (λy.i I) ((λy.ii)i) (λy.i I) (I I) (λy.i I)I I I I 15

26 ENCODING TERMS terms: prefix notation with λ, and. Positions: strings with R, λ Example (λxy.x y) (λx.x) (λλ10) (λ0) is encoded by λ. In this term, 1 occurs at L λλ@ L 16

27 SUBSTITUTION-BASED INTERPRETER To compute s s, use tapes pre, funct, arg, post, position: λ }{{} pre arg }{{} funct }{{} post 1. Find the first β-redex, copy to pre is read copy next complete term to funct (and remember its position on the position tape) if the next token is λ, copy the next term to arg and remaining tokens to post otherwise, move funct onto pre and start from beginning 2. copy funct to pre, replacing variable with arg 3. copy post to pre [Dal Lago, Martini (2008)] 17

28 COMPLEXITY ANALYSIS O( s 2 ) time Per step for s s : O( s + s ) space 18

29 COMPLEXITY ANALYSIS O( s 2 ) time Per step for s s : O( s + s ) space In total for s = s 0 s 1 s k : O( i s i 2 ) time O(max i s i ) = O(Space(s)) space 18

30 Theorem (Invariance thesis part II for space) Turing machines can simulate L with a constant-factor overhead in space. 19

31 EXPLOSIVE TERMS 2 := λxy.x (x y) can double the size of a term in one step: So, with I := λx.x: 2 t λy.t (t y) 2 (2 ( (2 I)...) }{{} k times normalizes in k L-steps, but needs Ω(2 k ) interpretation time 20

32 EXAMPLE: EVALUATING WITH A HEAP 2 := λxy.x (x y) 2(2I)I 21

33 EXAMPLE: EVALUATING WITH A HEAP 2 := λxy.x (x y) 2(2I)I 2(λy.h 1 (h 1 y))i h 1 := I 21

34 EXAMPLE: EVALUATING WITH A HEAP 2 := λxy.x (x y) 2(2I)I 2(λy.h 1 (h 1 y))i (λy.h 2 (h 2 y))i h 1 := I h 1 := I, h 2 := (λy.h 1 (h 1 y)) 21

35 EXAMPLE: EVALUATING WITH A HEAP 2 := λxy.x (x y) 2(2I)I 2(λy.h 1 (h 1 y))i (λy.h 2 (h 2 y))i h 2 (h 2 h 3 ) h 1 := I h 1 := I, h 2 := (λy.h 1 (h 1 y)) h 1 := I, h 2 := λy.h 1 (h 1 y), h 3 := I 21

36 EXAMPLE: EVALUATING WITH A HEAP 2 := λxy.x (x y) 2(2I)I 2(λy.h 1 (h 1 y))i (λy.h 2 (h 2 y))i h 2 (h 2 h 3 ) 2 h 2 ((λy.h 1 (h 1 y))i) h 1 := I h 1 := I, h 2 := (λy.h 1 (h 1 y)) h 1 := I, h 2 := λy.h 1 (h 1 y), h 3 := I 21

37 EXAMPLE: EVALUATING WITH A HEAP 2 := λxy.x (x y) 2(2I)I 2(λy.h 1 (h 1 y))i (λy.h 2 (h 2 y))i h 2 (h 2 h 3 ) 2 h 2 ((λy.h 1 (h 1 y))i) h 2 (h 1 (h 1 h 4 )) h 1 := I h 1 := I, h 2 := (λy.h 1 (h 1 y)) h 1 := I, h 2 := λy.h 1 (h 1 y), h 3 := I..., h 4 := I 21

38 EXAMPLE: EVALUATING WITH A HEAP 2 := λxy.x (x y) 2(2I)I 2(λy.h 1 (h 1 y))i (λy.h 2 (h 2 y))i h 2 (h 2 h 3 ) 2 h 2 ((λy.h 1 (h 1 y))i) h 2 (h 1 (h 1 h 4 )) 2 h 2 (h 1 (II)) h 1 := I h 1 := I, h 2 := (λy.h 1 (h 1 y)) h 1 := I, h 2 := λy.h 1 (h 1 y), h 3 := I..., h 4 := I 21

39 EXAMPLE: EVALUATING WITH A HEAP 2 := λxy.x (x y) 2(2I)I 2(λy.h 1 (h 1 y))i (λy.h 2 (h 2 y))i h 2 (h 2 h 3 ) 2 h 2 ((λy.h 1 (h 1 y))i) h 2 (h 1 (h 1 h 4 )) 2 h 2 (h 1 (II)) 5 h 2 I h 1 := I h 1 := I, h 2 := (λy.h 1 (h 1 y)) h 1 := I, h 2 := λy.h 1 (h 1 y), h 3 := I..., h 4 := I..., h 5 := I, h 6 := I 21

40 EXAMPLE: EVALUATING WITH A HEAP 2 := λxy.x (x y) 2(2I)I 2(λy.h 1 (h 1 y))i (λy.h 2 (h 2 y))i h 2 (h 2 h 3 ) 2 h 2 ((λy.h 1 (h 1 y))i) h 2 (h 1 (h 1 h 4 )) 2 h 2 (h 1 (II)) 5 h 2 I h 1 (h 1 h 7 ) h 1 := I h 1 := I, h 2 := (λy.h 1 (h 1 y)) h 1 := I, h 2 := λy.h 1 (h 1 y), h 3 := I..., h 4 := I..., h 5 := I, h 6 := I 21

41 EXAMPLE: EVALUATING WITH A HEAP 2 := λxy.x (x y) 2(2I)I 2(λy.h 1 (h 1 y))i (λy.h 2 (h 2 y))i h 2 (h 2 h 3 ) 2 h 2 ((λy.h 1 (h 1 y))i) h 2 (h 1 (h 1 h 4 )) 2 h 2 (h 1 (II)) 5 h 2 I h 1 (h 1 h 7 ) I h 1 := I h 1 := I, h 2 := (λy.h 1 (h 1 y)) h 1 := I, h 2 := λy.h 1 (h 1 y), h 3 := I..., h 4 := I..., h 5 := I, h 6 := I 21

42 HEAP-BASED INTERPRETER s = s 0 s i s k Tapes: main (contains s i ), heap, hc (heap counter) Invariant: size of heap is always polynomial in k and s. 22

43 HEAP-BASED INTERPRETER s = s 0 s i s k Tapes: main (contains s i ), heap, hc (heap counter) Invariant: size of heap is always polynomial in k and s. For beta-reduction of (λx.t 1 )t 2 : Copy t 2 to heap, replace x in t 1 with address 22

44 HEAP-BASED INTERPRETER s = s 0 s i s k Tapes: main (contains s i ), heap, hc (heap counter) Invariant: size of heap is always polynomial in k and s. For beta-reduction of (λx.t 1 )t 2 : Copy t 2 to heap, replace x in t 1 with address (linear in the heap, O( t 1 ) many copies of an address linear in the heap) 22

45 HEAP-BASED INTERPRETER s = s 0 s i s k Tapes: main (contains s i ), heap, hc (heap counter) Invariant: size of heap is always polynomial in k and s. For beta-reduction of (λx.t 1 )t 2 : Copy t 2 to heap, replace x in t 1 with address (linear in the heap, O( t 1 ) many copies of an address linear in the heap) For variable-unfolding of x: Find the element associated to x in the heap 22

46 HEAP-BASED INTERPRETER s = s 0 s i s k Tapes: main (contains s i ), heap, hc (heap counter) Invariant: size of heap is always polynomial in k and s. For beta-reduction of (λx.t 1 )t 2 : Copy t 2 to heap, replace x in t 1 with address (linear in the heap, O( t 1 ) many copies of an address linear in the heap) For variable-unfolding of x: Find the element associated to x in the heap (linear in the heap) 22

47 HEAP-BASED INTERPRETER s = s 0 s i s k Tapes: main (contains s i ), heap, hc (heap counter) Invariant: size of heap is always polynomial in k and s. For beta-reduction of (λx.t 1 )t 2 : Copy t 2 to heap, replace x in t 1 with address (linear in the heap, O( t 1 ) many copies of an address linear in the heap) For variable-unfolding of x: Find the element associated to x in the heap (linear in the heap) A bit more complicated for de-bruijn, but doable. 22

48 COMPLEXITY ANALYSIS Theorem There is a constant c such that any reduction s = s 0 s k in L can be simulated by the heap-based Turing machine in time and space O( s k c ). 23

49 Theorem (Invariance thesis part II for time) Turing machines can simulate L with a polynomially bounded overhead in time. 24

50 SUB-LINEAR-LOGARITHMICLY SMALL TERMS Let N := (λxy.x x) I, then N ( (N I)...) }{{} k times k (λy.i I) ( ((λy.i I) I)...) }{{} k times 2k I Needs 3k entries (with addresses of size O(k)) on heap, but definition permits only O(k) space 25

51 COMPLEXITY OVERVIEW s = s 0 s 1 s k for s k with constant size: substitution-based heap-based time O( i s i 2 ) O(poly(Time(s))) space O(Space(s)) O( s k c ) 26

52 PROBLEM ANALYSIS s = s 0 s k Heap-based interpreter needs O( s k c ) space on sublinar-logarithmically reducing terms (in k steps). 27

53 PROBLEM ANALYSIS s = s 0 s k Heap-based interpreter needs O( s k c ) space on sublinar-logarithmically reducing terms (in k steps). Substitution-based interpreter needs more than polynomial time on explosive terms where s i is asymptotically non-polynomial. 27

54 PROBLEM ANALYSIS s = s 0 s k Heap-based interpreter needs O( s k c ) space on sublinar-logarithmically reducing terms (in k steps). Substitution-based interpreter needs more than polynomial time on explosive terms where s i is asymptotically non-polynomial. But: Heap-based interpreter works on explosive terms! 27

55 HYBRID INTERPRETER Input: A term s. Set k = 0. Execute the substitution-based interpreter on s for k steps: If a normal form is reached, output it. If the space consumption is larger than s k c, abort and use the heap-based interpreter for k steps. If no normal form is reached, delete everything except s, set k := k + 1 and repeat. 28

56 TIME ANALYSIS Running time for fixed s and k: In total: O( ) 29

57 TIME ANALYSIS Running time for fixed s and k: heap-based interpreter: s k c In total: O( ) 29

58 TIME ANALYSIS Running time for fixed s and k: heap-based interpreter: s k c In total: O( Time(s) k=0 s k c }{{} heap-based ) 29

59 TIME ANALYSIS Running time for fixed s and k: unfolding the normal form: poly( s, Time(s))) In total: O( Time(s) k=0 s k c }{{} heap-based ) 29

60 TIME ANALYSIS Running time for fixed s and k: unfolding the normal form: poly( s, Time(s))) In total: O( poly( t, Time(s)) + }{{} unfolding the normal form t Time(s) k=0 s k c }{{} heap-based ) 29

61 TIME ANALYSIS Running time for fixed s and k: substitution-based interpreter: O( k i=1 s i 2 ) In total: O( poly( t, Time(s)) + }{{} unfolding the normal form t Time(s) k=0 s k c }{{} heap-based ) 29

62 TIME ANALYSIS Running time for fixed s and k: substitution-based interpreter: O( k i=1 s i 2 ) O( poly( t, Time(s)) + }{{} unfolding the normal form t In total: Time(s) k=0 s k c }{{} heap-based + k s i 2 i=1 }{{} substitution-based ) 29

63 TIME ANALYSIS Running time for fixed s and k: because of the space bound: s i s k c O( poly( t, Time(s)) + }{{} unfolding the normal form t In total: Time(s) k=0 s k c }{{} heap-based + k s i 2 i=1 }{{} substitution-based ) 29

64 TIME ANALYSIS Running time for fixed s and k: because of the space bound: s i s k c thus k i=1 s i 2 k s 2 k 2c O( poly( t, Time(s)) + }{{} unfolding the normal form t In total: Time(s) k=0 s k c }{{} heap-based + k s i 2 i=1 }{{} substitution-based ) 29

65 TIME ANALYSIS Running time for fixed s and k: because of the space bound: s i s k c thus k i=1 s i 2 k s 2 k 2c O( poly( t, Time(s)) + }{{} unfolding the normal form t In total: Time(s) k=0 s k c + k s k 2c ) }{{}}{{} heap-based substitution-based 29

66 TIME ANALYSIS Simplified: O( poly( t, Time(s)) + }{{} unfolding the normal form t Time(s) k=0 s k c + k s k 2c ) }{{}}{{} heap-based substitution-based O(poly( s, Time(s)) + Time(s) 2c+2 s 2 ) 29

67 SPACE ANALYSIS Space consumption for fixed s and k: In total: O( max k Space(s) ) 30

68 SPACE ANALYSIS Space consumption for fixed s and k: substitution-based interpreter: max i {0,...,k} s i In total: O( max k Space(s) ) 30

69 SPACE ANALYSIS Space consumption for fixed s and k: substitution-based interpreter: max i {0,...,k} s i = O(Space k (s)) In total: O( max k Space(s) ) 30

70 SPACE ANALYSIS Space consumption for fixed s and k: substitution-based interpreter: max i {0,...,k} s i = O(Space k (s)) In total: O( max k Space(s) Space k (s) ) 30

71 SPACE ANALYSIS Space consumption for fixed s and k: heap-based interpreter: O( s k c ) In total: O( max k Space(s) Space k (s) ) 30

72 SPACE ANALYSIS Space consumption for fixed s and k: heap-based interpreter: O( s k c ) In total: O( max k Space(s) Space k (s)+ s kc ) 30

73 SPACE ANALYSIS Space consumption for fixed s and k: because of the space bound: Space k (s) s k c In total: O( max k Space(s) Space k (s)+ s kc ) 30

74 SPACE ANALYSIS Space consumption for fixed s and k: because of the space bound: Space k (s) s k c In total: O( max k Space(s) Space k (s)+space k (s)) 30

75 SPACE ANALYSIS Simplified: O( max k Space(s) Space k (s)+space k (s)) O(Space(s)) 30

76 Theorem (Strong Invariance Thesis for L) L and Turing Machines can simulate each other within a polynomially bounded overhead in time and a constant-factor overhead in space for decision functions with non-sublinear running time. 31

77 WORK IN PROGRESS: FORMALISATION spec proof Functional correctness of L-interpreters L-extraction framework TM-interpreter (no verified complexity analysis)

78 WORK IN PROGRESS: FORMALISATION spec proof Functional correctness of L-interpreters L-extraction framework TM-interpreter (no verified complexity analysis) Missing: TM implementation and verification of L-interpreters Time and space analysis of L-interpreters Time and space analysis of TM-interpreter 32

79 SUMMARY The weak call-by-value λ-calculus L is as reasonable for complexity theory as Turing machines. 33

80 SUMMARY The weak call-by-value λ-calculus L is as reasonable for complexity theory as Turing machines. Future work: Formalise the complexity analysis Complexity theory using L: NP, many-one-reductions, hierarchy theorems,... 33

81 SUMMARY The weak call-by-value λ-calculus L is as reasonable for complexity theory as Turing machines. Future work: Formalise the complexity analysis Complexity theory using L: NP, many-one-reductions, hierarchy theorems,... Thanks! 33

82 THE HEAP-BASED INTERPRETER Use environments on a heap to delay substitutions: call (thunk) c = s E : pair of encoded L-term s and heap-address E heap H: list of entries ( or c#e ), addressed by position. call stack CS: list of tuples (@ L, c) or (@ R, c) R, c fully reduced) interpreter state: current call CC, CS and H. initial state: CC = s 0, CS = [] and H = [ ]) Example The result of (λx.x) ((λxy.x y) (λx.x)) (λx.x) (λx.x y) y λx.x is represented by CC =(λ@ ) 1 CS =[(@ R, (λ ) 0 )] H =[, (λ ) 0 )#0] 34

83 THE HEAP-BASED INTERPRETER (2) Each step of the interpreter depends on the current call CC = s E : if s = s L s R : push (@ L, s R [E]) on CS and set CC to s R E if s = x: get new CC by lookup of x in E if s = λs : if CS is empty: the term is fully evaluated if CS = (@ L, c R ) :: CS : set CC := c R and put (@ R, CC) on stack instead. if CS = (@R, λt E ) :: CS : store s R E #E on heap as Ê and set CC := t Ê 35

84 THE HEAP-BASED INTERPRETER (2) Each step of the interpreter depends on the current call CC = s E : if s = s L s R : push (@ L, s R [E]) on CS and set CC to s R E if s = x: get new CC by lookup of x in E if s = λs : if CS is empty: the term is fully evaluated if CS = (@ L, c R ) :: CS : set CC := c R and put (@ R, CC) on stack instead. if CS = (@R, λt E ) :: CS : store s R E #E on heap as Ê and set CC := t Ê Observations for evaluation s 0 s 1 s k : all calls contain subterms of s Heap contains #H = k + 1 elements, each of size s + 2 log(#h) CS & CC representing s i have size O( s i ) space consumption: O((max i s i ) + k ( s + log(k))) 35

85 THE HEAP-BASED INTERPRETER (2) Each step of the interpreter depends on the current call CC = s E : if s = s L s R : push (@ L, s R [E]) on CS and set CC to s R E if s = x: get new CC by lookup of x in E if s = λs : if CS is empty: the term is fully evaluated if CS = (@ L, c R ) :: CS : set CC := c R and put (@ R, CC) on stack instead. if CS = (@R, λt E ) :: CS : store s R E #E on heap as Ê and set CC := t Ê Observations for evaluation s 0 s 1 s k : all calls contain subterms of s Heap contains #H = k + 1 elements, each of size s + 2 log(#h) CS & CC representing s i have size O( s i ) space consumption: O((max i s i ) + k ( s + log(k))) time per interpreter step: O( s i #H + CC + CS) amortized, poly( s 0 ) interpreter-steps per β-reduction. time consumption: O(poly(k, s )) 35

86 LC: L WITH CLOSURES 36

Undecidability of the Post Correspondence Problem in Coq

Undecidability of the Post Correspondence Problem in Coq Undecidaility of the Post Correspondence Prolem in Coq Bachelor Talk Edith Heiter Advisors: Prof. Dr. Gert Smolka, Yannick Forster August 23, 2017 PCP and Undecidaility SR to MPCP Turing Machines Reach

More information

IV. Turing Machine. Yuxi Fu. BASICS, Shanghai Jiao Tong University

IV. Turing Machine. Yuxi Fu. BASICS, Shanghai Jiao Tong University IV. Turing Machine Yuxi Fu BASICS, Shanghai Jiao Tong University Alan Turing Alan Turing (23Jun.1912-7Jun.1954), an English student of Church, introduced a machine model for effective calculation in On

More information

(Leftmost-outermost) beta reduction is invariant, indeed

(Leftmost-outermost) beta reduction is invariant, indeed (Leftmost-outermost) beta reduction is invariant, indeed Beniamino Accattoli, Ugo Dal Lago To cite this version: Beniamino Accattoli, Ugo Dal Lago. (Leftmost-outermost) beta reduction is invariant, indeed.

More information

Computability Theory. CS215, Lecture 6,

Computability Theory. CS215, Lecture 6, Computability Theory CS215, Lecture 6, 2000 1 The Birth of Turing Machines At the end of the 19th century, Gottlob Frege conjectured that mathematics could be built from fundamental logic In 1900 David

More information

Part I: Definitions and Properties

Part I: Definitions and Properties Turing Machines Part I: Definitions and Properties Finite State Automata Deterministic Automata (DFSA) M = {Q, Σ, δ, q 0, F} -- Σ = Symbols -- Q = States -- q 0 = Initial State -- F = Accepting States

More information

A Type-Theoretic Characterization of Polynomial Time Computable Functions

A Type-Theoretic Characterization of Polynomial Time Computable Functions A Type-Theoretic Characterization of Polynomial Time Computable Functions Master Thesis in Mathematics at the Radboud Universiteit Nijmegen Rik de Kort supervised by Dr. Herman Geuvers September 7, 2016

More information

Lecture 3: Reductions and Completeness

Lecture 3: Reductions and Completeness CS 710: Complexity Theory 9/13/2011 Lecture 3: Reductions and Completeness Instructor: Dieter van Melkebeek Scribe: Brian Nixon Last lecture we introduced the notion of a universal Turing machine for deterministic

More information

Decidability: Church-Turing Thesis

Decidability: Church-Turing Thesis Decidability: Church-Turing Thesis While there are a countably infinite number of languages that are described by TMs over some alphabet Σ, there are an uncountably infinite number that are not Are there

More information

forty-two XLII Equivalent Computers? Lecture 40: Computing with Glue and Photons What is 42? cuarenta y dos Meaning of Numbers Meaning of Numbers

forty-two XLII Equivalent Computers? Lecture 40: Computing with Glue and Photons What is 42? cuarenta y dos Meaning of Numbers Meaning of Numbers ), #, R #,, - ), #, R #,, - Lecture 40: Computing with Glue and Photons Equivalent Computers? z z z... term = variable term term (term) λ variable. term λy. M α λv. (M [y α v]) where v does not occur in

More information

CS20a: Turing Machines (Oct 29, 2002)

CS20a: Turing Machines (Oct 29, 2002) CS20a: Turing Machines (Oct 29, 2002) So far: DFA = regular languages PDA = context-free languages Today: Computability 1 Church s thesis The computable functions are the same as the partial recursive

More information

CSE 105 THEORY OF COMPUTATION

CSE 105 THEORY OF COMPUTATION CSE 105 THEORY OF COMPUTATION Spring 2016 http://cseweb.ucsd.edu/classes/sp16/cse105-ab/ Today's learning goals Sipser Ch 3.3, 4.1 State and use the Church-Turing thesis. Give examples of decidable problems.

More information

Saarland University. Verified Compilation of Weak Call-by-Value Lambda-Calculus into Combinators and Closures

Saarland University. Verified Compilation of Weak Call-by-Value Lambda-Calculus into Combinators and Closures Saarland University Faculty of Natural Sciences and Technology I Bachelor s Thesis Verified Compilation of Weak Call-by-Value Lambda-Calculus into Combinators and Closures Fabian Maximilian Kunze Advisor:

More information

CSE 200 Lecture Notes Turing machine vs. RAM machine vs. circuits

CSE 200 Lecture Notes Turing machine vs. RAM machine vs. circuits CSE 200 Lecture Notes Turing machine vs. RAM machine vs. circuits Chris Calabro January 13, 2016 1 RAM model There are many possible, roughly equivalent RAM models. Below we will define one in the fashion

More information

THE UNIVERSITY OF CALGARY FACULTY OF SCIENCE FINAL EXAMINATION COMPUTER SCIENCE 521

THE UNIVERSITY OF CALGARY FACULTY OF SCIENCE FINAL EXAMINATION COMPUTER SCIENCE 521 P. 1 of 7 THE UNIVERSITY OF CALGARY FACULTY OF SCIENCE FINAL EXAMINATION COMPUTER SCIENCE 521 December, 2016 Time: 2 hrs. Instructions The exam contains questions totaling 100 points. Answer all questions.

More information

Most General computer?

Most General computer? Turing Machines Most General computer? DFAs are simple model of computation. Accept only the regular languages. Is there a kind of computer that can accept any language, or compute any function? Recall

More information

Advanced topic: Space complexity

Advanced topic: Space complexity Advanced topic: Space complexity CSCI 3130 Formal Languages and Automata Theory Siu On CHAN Chinese University of Hong Kong Fall 2016 1/28 Review: time complexity We have looked at how long it takes to

More information

Turing Machine Variants

Turing Machine Variants CS311 Computational Structures Turing Machine Variants Lecture 12 Andrew Black Andrew Tolmach 1 The Church-Turing Thesis The problems that can be decided by an algorithm are exactly those that can be decided

More information

Equivalent Computers. Lecture 39: Lambda Calculus. Lambda Calculus. What is Calculus? Real Definition. Why?

Equivalent Computers. Lecture 39: Lambda Calculus. Lambda Calculus. What is Calculus? Real Definition. Why? #,, - Lecture 39: Lambda Calculus Equivalent Computers z z z... term = variable term term (term) λ variable. term λy. M α λv. (M [y α v]) where v does not occur in M. (λx. M)N β M [ x α N ] Turing Machine

More information

Automata Theory CS S-12 Turing Machine Modifications

Automata Theory CS S-12 Turing Machine Modifications Automata Theory CS411-2015S-12 Turing Machine Modifications David Galles Department of Computer Science University of San Francisco 12-0: Extending Turing Machines When we added a stack to NFA to get a

More information

1 From previous lectures

1 From previous lectures CS 810: Introduction to Complexity Theory 9/18/2003 Lecture 11: P/poly, Sparse Sets, and Mahaney s Theorem Instructor: Jin-Yi Cai Scribe: Aparna Das, Scott Diehl, Giordano Fusco 1 From previous lectures

More information

CS5371 Theory of Computation. Lecture 10: Computability Theory I (Turing Machine)

CS5371 Theory of Computation. Lecture 10: Computability Theory I (Turing Machine) CS537 Theory of Computation Lecture : Computability Theory I (Turing Machine) Objectives Introduce the Turing Machine (TM) Proposed by Alan Turing in 936 finite-state control + infinitely long tape A stronger

More information

Outline. Complexity Theory. Example. Sketch of a log-space TM for palindromes. Log-space computations. Example VU , SS 2018

Outline. Complexity Theory. Example. Sketch of a log-space TM for palindromes. Log-space computations. Example VU , SS 2018 Complexity Theory Complexity Theory Outline Complexity Theory VU 181.142, SS 2018 3. Logarithmic Space Reinhard Pichler Institute of Logic and Computation DBAI Group TU Wien 3. Logarithmic Space 3.1 Computational

More information

THE UNIVERSITY OF CALGARY FACULTY OF SCIENCE FINAL EXAMINATION COMPUTER SCIENCE 521

THE UNIVERSITY OF CALGARY FACULTY OF SCIENCE FINAL EXAMINATION COMPUTER SCIENCE 521 P. 1 of 7 THE UNIVERSITY OF CALGARY FACULTY OF SCIENCE FINAL EXAMINATION COMPUTER SCIENCE 521 December, 2014 Time: 2 hrs. Instructions The exam contains questions totaling 100 points. Answer all questions.

More information

CS 21 Decidability and Tractability Winter Solution Set 3

CS 21 Decidability and Tractability Winter Solution Set 3 CS 21 Decidability and Tractability Winter 2018 Posted: January 31 Solution Set 3 If you have not yet turned in the Problem Set, you should not consult these solutions. 1. (a) A 2-NPDA is a 7-tuple (Q,,

More information

1 Circuit Complexity. CS 6743 Lecture 15 1 Fall Definitions

1 Circuit Complexity. CS 6743 Lecture 15 1 Fall Definitions CS 6743 Lecture 15 1 Fall 2007 1 Circuit Complexity 1.1 Definitions A Boolean circuit C on n inputs x 1,..., x n is a directed acyclic graph (DAG) with n nodes of in-degree 0 (the inputs x 1,..., x n ),

More information

CS4026 Formal Models of Computation

CS4026 Formal Models of Computation CS4026 Formal Models of Computation Turing Machines Turing Machines Abstract but accurate model of computers Proposed by Alan Turing in 1936 There weren t computers back then! Turing s motivation: find

More information

1 Deterministic Turing Machines

1 Deterministic Turing Machines Time and Space Classes Exposition by William Gasarch 1 Deterministic Turing Machines Turing machines are a model of computation. It is believed that anything that can be computed can be computed by a Turing

More information

Models of computation

Models of computation Lambda-Calculus (I) jean-jacques.levy@inria.fr 2nd Asian-Pacific Summer School on Formal ethods Tsinghua University, August 23, 2010 Plan computation models lambda-notation bound variables odels of computation

More information

Turing Machine Recap

Turing Machine Recap Turing Machine Recap DFA with (infinite) tape. One move: read, write, move, change state. High-level Points Church-Turing thesis: TMs are the most general computing devices. So far no counter example Every

More information

Limits of Computability

Limits of Computability Limits of Computability Wolfgang Schreiner Wolfgang.Schreiner@risc.jku.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria http://www.risc.jku.at Wolfgang Schreiner

More information

The Suspension Notation as a Calculus of Explicit Substitutions

The Suspension Notation as a Calculus of Explicit Substitutions The Suspension Notation as a Calculus of Explicit Substitutions Gopalan Nadathur Digital Technology Center and Department of Computer Science University of Minnesota [Joint work with D.S. Wilson and A.

More information

Introduction to Turing Machines

Introduction to Turing Machines Introduction to Turing Machines Deepak D Souza Department of Computer Science and Automation Indian Institute of Science, Bangalore. 12 November 2015 Outline 1 Turing Machines 2 Formal definitions 3 Computability

More information

Turing Machines Part II

Turing Machines Part II Turing Machines Part II COMP2600 Formal Methods for Software Engineering Katya Lebedeva Australian National University Semester 2, 2016 Slides created by Katya Lebedeva COMP 2600 Turing Machines 1 Why

More information

1 Computational Problems

1 Computational Problems Stanford University CS254: Computational Complexity Handout 2 Luca Trevisan March 31, 2010 Last revised 4/29/2010 In this lecture we define NP, we state the P versus NP problem, we prove that its formulation

More information

Undecidability COMS Ashley Montanaro 4 April Department of Computer Science, University of Bristol Bristol, UK

Undecidability COMS Ashley Montanaro 4 April Department of Computer Science, University of Bristol Bristol, UK COMS11700 Undecidability Department of Computer Science, University of Bristol Bristol, UK 4 April 2014 COMS11700: Undecidability Slide 1/29 Decidability We are particularly interested in Turing machines

More information

The Weak Lambda Calculus as a Reasonable Machine

The Weak Lambda Calculus as a Reasonable Machine The Weak Lambda Calculus as a Reasonable Machine Ugo Dal Lago and Simone Martini Dipartimento di Scienze dell Informazione, Università di Bologna, Mura Anteo Zamboni 7, 40127 Bologna, Italy. Abstract We

More information

Introduction to Turing Machines. Reading: Chapters 8 & 9

Introduction to Turing Machines. Reading: Chapters 8 & 9 Introduction to Turing Machines Reading: Chapters 8 & 9 1 Turing Machines (TM) Generalize the class of CFLs: Recursively Enumerable Languages Recursive Languages Context-Free Languages Regular Languages

More information

4.2 The Halting Problem

4.2 The Halting Problem 172 4.2 The Halting Problem The technique of diagonalization was discovered in 1873 by Georg Cantor who was concerned with the problem of measuring the sizes of infinite sets For finite sets we can simply

More information

Post s Theorem and Blockchain Languages

Post s Theorem and Blockchain Languages Post s Theorem and Blockchain Languages A Short Course in the Theory of Computation Russell O Connor roconnor@blockstream.com BPASE, January 26, 2017 1 / 35 morpheus (logician): Tell me Neo, what is the

More information

Lecture 25: Cook s Theorem (1997) Steven Skiena. skiena

Lecture 25: Cook s Theorem (1997) Steven Skiena.   skiena Lecture 25: Cook s Theorem (1997) Steven Skiena Department of Computer Science State University of New York Stony Brook, NY 11794 4400 http://www.cs.sunysb.edu/ skiena Prove that Hamiltonian Path is NP

More information

CS3719 Theory of Computation and Algorithms

CS3719 Theory of Computation and Algorithms CS3719 Theory of Computation and Algorithms Any mechanically (automatically) discretely computation of problem solving contains at least three components: - problem description - computational tool - analysis

More information

The Turing Machine. Computability. The Church-Turing Thesis (1936) Theory Hall of Fame. Theory Hall of Fame. Undecidability

The Turing Machine. Computability. The Church-Turing Thesis (1936) Theory Hall of Fame. Theory Hall of Fame. Undecidability The Turing Machine Computability Motivating idea Build a theoretical a human computer Likened to a human with a paper and pencil that can solve problems in an algorithmic way The theoretical provides a

More information

Turing s original paper (1936)

Turing s original paper (1936) Turing s original paper (1936) Turing s original paper (1936) There exist problems that cannot be solved mechanically Turing s original paper (1936) There exist problems that cannot be solved mechanically

More information

Notes for Lecture Notes 2

Notes for Lecture Notes 2 Stanford University CS254: Computational Complexity Notes 2 Luca Trevisan January 11, 2012 Notes for Lecture Notes 2 In this lecture we define NP, we state the P versus NP problem, we prove that its formulation

More information

More About Turing Machines. Programming Tricks Restrictions Extensions Closure Properties

More About Turing Machines. Programming Tricks Restrictions Extensions Closure Properties More About Turing Machines Programming Tricks Restrictions Extensions Closure Properties 1 Overview At first, the TM doesn t look very powerful. Can it really do anything a computer can? We ll discuss

More information

15.1 Proof of the Cook-Levin Theorem: SAT is NP-complete

15.1 Proof of the Cook-Levin Theorem: SAT is NP-complete CS125 Lecture 15 Fall 2016 15.1 Proof of the Cook-Levin Theorem: SAT is NP-complete Already know SAT NP, so only need to show SAT is NP-hard. Let L be any language in NP. Let M be a NTM that decides L

More information

Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2018

Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2018 Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2018 Lecture 15 Ana Bove May 17th 2018 Recap: Context-free Languages Chomsky hierarchy: Regular languages are also context-free; Pumping lemma

More information

Lambda-Calculus (I) 2nd Asian-Pacific Summer School on Formal Methods Tsinghua University, August 23, 2010

Lambda-Calculus (I) 2nd Asian-Pacific Summer School on Formal Methods Tsinghua University, August 23, 2010 Lambda-Calculus (I) jean-jacques.levy@inria.fr 2nd Asian-Pacific Summer School on Formal Methods Tsinghua University, August 23, 2010 Plan computation models lambda-notation bound variables conversion

More information

Automata & languages. A primer on the Theory of Computation. Laurent Vanbever. ETH Zürich (D-ITET) October,

Automata & languages. A primer on the Theory of Computation. Laurent Vanbever.   ETH Zürich (D-ITET) October, Automata & languages A primer on the Theory of Computation Laurent Vanbever www.vanbever.eu ETH Zürich (D-ITET) October, 19 2017 Part 5 out of 5 Last week was all about Context-Free Languages Context-Free

More information

CS5371 Theory of Computation. Lecture 10: Computability Theory I (Turing Machine)

CS5371 Theory of Computation. Lecture 10: Computability Theory I (Turing Machine) CS537 Theory of Computation Lecture : Computability Theory I (Turing Machine) Objectives Introduce the Turing Machine (TM)? Proposed by Alan Turing in 936 finite-state control + infinitely long tape A

More information

Complexity (Pre Lecture)

Complexity (Pre Lecture) Complexity (Pre Lecture) Dr. Neil T. Dantam CSCI-561, Colorado School of Mines Fall 2018 Dantam (Mines CSCI-561) Complexity (Pre Lecture) Fall 2018 1 / 70 Why? What can we always compute efficiently? What

More information

CS154, Lecture 10: Rice s Theorem, Oracle Machines

CS154, Lecture 10: Rice s Theorem, Oracle Machines CS154, Lecture 10: Rice s Theorem, Oracle Machines Moral: Analyzing Programs is Really, Really Hard But can we more easily tell when some program analysis problem is undecidable? Problem 1 Undecidable

More information

Turing Machines. The Language Hierarchy. Context-Free Languages. Regular Languages. Courtesy Costas Busch - RPI 1

Turing Machines. The Language Hierarchy. Context-Free Languages. Regular Languages. Courtesy Costas Busch - RPI 1 Turing Machines a n b n c The anguage Hierarchy n? ww? Context-Free anguages a n b n egular anguages a * a *b* ww Courtesy Costas Busch - PI a n b n c n Turing Machines anguages accepted by Turing Machines

More information

Chapter 7 Turing Machines

Chapter 7 Turing Machines Chapter 7 Turing Machines Copyright 2011 The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1 A General Model of Computation Both finite automata and pushdown automata are

More information

CS6901: review of Theory of Computation and Algorithms

CS6901: review of Theory of Computation and Algorithms CS6901: review of Theory of Computation and Algorithms Any mechanically (automatically) discretely computation of problem solving contains at least three components: - problem description - computational

More information

On space efficiency of Krivine s abstract machine and Hyland-Ong games

On space efficiency of Krivine s abstract machine and Hyland-Ong games 13/02/08, LIPN p.1/28 On space efficiency of Krivine s abstract machine and Hyland-Ong games Kazushige Terui terui@nii.ac.jp National Institute of Informatics, Tokyo Laboratoire d Informatics de Paris

More information

Busch Complexity Lectures: Turing s Thesis. Costas Busch - LSU 1

Busch Complexity Lectures: Turing s Thesis. Costas Busch - LSU 1 Busch Complexity Lectures: Turing s Thesis Costas Busch - LSU 1 Turing s thesis (1930): Any computation carried out by mechanical means can be performed by a Turing Machine Costas Busch - LSU 2 Algorithm:

More information

Variations on a theme: call-by-value and factorization

Variations on a theme: call-by-value and factorization Variations on a theme: call-by-value and factorization Beniamino Accattoli INRIA & LIX, Ecole Polytechnique Accattoli (INRIA Parsifal) Variations on a theme: call-by-value and factorization 1 / 31 Outline

More information

Operational Semantics

Operational Semantics Operational Semantics Semantics and applications to verification Xavier Rival École Normale Supérieure Xavier Rival Operational Semantics 1 / 50 Program of this first lecture Operational semantics Mathematical

More information

The Power of One-State Turing Machines

The Power of One-State Turing Machines The Power of One-State Turing Machines Marzio De Biasi Jan 15, 2018 Abstract At first glance, one state Turing machines are very weak: the Halting problem for them is decidable, and, without memory, they

More information

Theory of Computing Tamás Herendi

Theory of Computing Tamás Herendi Theory of Computing Tamás Herendi Theory of Computing Tamás Herendi Publication date 2014 Table of Contents 1 Preface 1 2 Formal languages 2 3 Order of growth rate 9 4 Turing machines 16 1 The definition

More information

CS20a: Turing Machines (Oct 29, 2002)

CS20a: Turing Machines (Oct 29, 2002) CS20a: Turing Machines (Oct 29, 2002) So far: DFA = regular languages PDA = context-free languages Today: Computability 1 Handicapped machines DFA limitations Tape head moves only one direction 2-way DFA

More information

Theory of Computer Science. Theory of Computer Science. D7.1 Introduction. D7.2 Turing Machines as Words. D7.3 Special Halting Problem

Theory of Computer Science. Theory of Computer Science. D7.1 Introduction. D7.2 Turing Machines as Words. D7.3 Special Halting Problem Theory of Computer Science May 2, 2018 D7. Halting Problem and Reductions Theory of Computer Science D7. Halting Problem and Reductions Gabriele Röger University of Basel May 2, 2018 D7.1 Introduction

More information

Rewriting, Explicit Substitutions and Normalisation

Rewriting, Explicit Substitutions and Normalisation Rewriting, Explicit Substitutions and Normalisation XXXVI Escola de Verão do MAT Universidade de Brasilia Part 1/3 Eduardo Bonelli LIFIA (Fac. de Informática, UNLP, Arg.) and CONICET eduardo@lifia.info.unlp.edu.ar

More information

On Elementary Linear Logic and polynomial time (Extended Abstract)

On Elementary Linear Logic and polynomial time (Extended Abstract) On Elementary Linear Logic and polynomial time (Extended Abstract) Patrick Baillot ENS Lyon, Université de Lyon, LIP (UMR 5668 CNRS-ENSL-INRIA-UCBL) 1 Introduction Linear logic (LL) [Gir87] has been used

More information

Database Theory VU , SS Complexity of Query Evaluation. Reinhard Pichler

Database Theory VU , SS Complexity of Query Evaluation. Reinhard Pichler Database Theory Database Theory VU 181.140, SS 2018 5. Complexity of Query Evaluation Reinhard Pichler Institut für Informationssysteme Arbeitsbereich DBAI Technische Universität Wien 17 April, 2018 Pichler

More information

Turing Machines A Turing Machine is a 7-tuple, (Q, Σ, Γ, δ, q0, qaccept, qreject), where Q, Σ, Γ are all finite

Turing Machines A Turing Machine is a 7-tuple, (Q, Σ, Γ, δ, q0, qaccept, qreject), where Q, Σ, Γ are all finite The Church-Turing Thesis CS60001: Foundations of Computing Science Professor, Dept. of Computer Sc. & Engg., Turing Machines A Turing Machine is a 7-tuple, (Q, Σ, Γ, δ, q 0, q accept, q reject ), where

More information

Review. Principles of Programming Languages. Equality. The Diamond Property. The Church-Rosser Theorem. Corollaries. CSE 230: Winter 2007

Review. Principles of Programming Languages. Equality. The Diamond Property. The Church-Rosser Theorem. Corollaries. CSE 230: Winter 2007 CSE 230: Winter 2007 Principles of Programming Languages Lecture 12: The λ-calculus Ranjit Jhala UC San Diego Review The lambda calculus is a calculus of functions: e := x λx. e e 1 e 2 Several evaluation

More information

Decidability of Existence and Construction of a Complement of a given function

Decidability of Existence and Construction of a Complement of a given function Decidability of Existence and Construction of a Complement of a given function Ka.Shrinivaasan, Chennai Mathematical Institute (CMI) (shrinivas@cmi.ac.in) April 28, 2011 Abstract This article denes a complement

More information

Parallelism and Machine Models

Parallelism and Machine Models Parallelism and Machine Models Andrew D Smith University of New Brunswick, Fredericton Faculty of Computer Science Overview Part 1: The Parallel Computation Thesis Part 2: Parallelism of Arithmetic RAMs

More information

Turing Machines. 22c:135 Theory of Computation. Tape of a Turing Machine (TM) TM versus FA, PDA

Turing Machines. 22c:135 Theory of Computation. Tape of a Turing Machine (TM) TM versus FA, PDA Turing Machines A Turing machine is similar to a finite automaton with supply of unlimited memory. A Turing machine can do everything that any computing device can do. There exist problems that even a

More information

Theory of Computation. Theory of Computation

Theory of Computation. Theory of Computation Theory of Computation Theory of Computation What is possible to compute? We can prove that there are some problems computers cannot solve There are some problems computers can theoretically solve, but

More information

Quantum Computing Lecture 8. Quantum Automata and Complexity

Quantum Computing Lecture 8. Quantum Automata and Complexity Quantum Computing Lecture 8 Quantum Automata and Complexity Maris Ozols Computational models and complexity Shor s algorithm solves, in polynomial time, a problem for which no classical polynomial time

More information

3.2 Equivalence, Evaluation and Reduction Strategies

3.2 Equivalence, Evaluation and Reduction Strategies 3.2 Equivalence, Evaluation and Reduction Strategies The λ-calculus can be seen as an equational theory. More precisely, we have rules i.e., α and reductions, for proving that two terms are intensionally

More information

Automata Theory - Quiz II (Solutions)

Automata Theory - Quiz II (Solutions) Automata Theory - Quiz II (Solutions) K. Subramani LCSEE, West Virginia University, Morgantown, WV {ksmani@csee.wvu.edu} 1 Problems 1. Induction: Let L denote the language of balanced strings over Σ =

More information

6.841/18.405J: Advanced Complexity Wednesday, February 12, Lecture Lecture 3

6.841/18.405J: Advanced Complexity Wednesday, February 12, Lecture Lecture 3 6.841/18.405J: Advanced Complexity Wednesday, February 12, 2003 Lecture Lecture 3 Instructor: Madhu Sudan Scribe: Bobby Kleinberg 1 The language MinDNF At the end of the last lecture, we introduced the

More information

Turing s Thesis. Fall Costas Busch - RPI!1

Turing s Thesis. Fall Costas Busch - RPI!1 Turing s Thesis Costas Busch - RPI!1 Turing s thesis (1930): Any computation carried out by mechanical means can be performed by a Turing Machine Costas Busch - RPI!2 Algorithm: An algorithm for a problem

More information

Models. Models of Computation, Turing Machines, and the Limits of Turing Computation. Effective Calculability. Motivation for Models of Computation

Models. Models of Computation, Turing Machines, and the Limits of Turing Computation. Effective Calculability. Motivation for Models of Computation Turing Computation /0/ Models of Computation, Turing Machines, and the Limits of Turing Computation Bruce MacLennan Models A model is a tool intended to address a class of questions about some domain of

More information

Theory of Computation (IX) Yijia Chen Fudan University

Theory of Computation (IX) Yijia Chen Fudan University Theory of Computation (IX) Yijia Chen Fudan University Review The Definition of Algorithm Polynomials and their roots A polynomial is a sum of terms, where each term is a product of certain variables and

More information

arxiv: v1 [cs.cc] 3 Feb 2019

arxiv: v1 [cs.cc] 3 Feb 2019 Some Remarks on Real-Time Turing Machines (Preliminary Report) arxiv:1902.00975v1 [cs.cc] 3 Feb 2019 Holger Petersen Reinsburgstr. 75 70197 Stuttgart February 5, 2019 Abstract The power of real-time Turing

More information

CS5371 Theory of Computation. Lecture 12: Computability III (Decidable Languages relating to DFA, NFA, and CFG)

CS5371 Theory of Computation. Lecture 12: Computability III (Decidable Languages relating to DFA, NFA, and CFG) CS5371 Theory of Computation Lecture 12: Computability III (Decidable Languages relating to DFA, NFA, and CFG) Objectives Recall that decidable languages are languages that can be decided by TM (that means,

More information

Lambda-Calculus (cont): Fixpoints, Naming. Lecture 10 CS 565 2/10/08

Lambda-Calculus (cont): Fixpoints, Naming. Lecture 10 CS 565 2/10/08 Lambda-Calculus (cont): Fixpoints, Naming Lecture 10 CS 565 2/10/08 Recursion and Divergence Consider the application: Ω ((λ x. (x x)) (λ x. (x x))) Ω evaluates to itself in one step. It has no normal

More information

Theory of Computation CS3102 Spring 2015 A tale of computers, math, problem solving, life, love and tragic death

Theory of Computation CS3102 Spring 2015 A tale of computers, math, problem solving, life, love and tragic death Theory of Computation CS3102 Spring 2015 A tale of computers, math, problem solving, life, love and tragic death Robbie Hott www.cs.virginia.edu/~jh2jf Department of Computer Science University of Virginia

More information

Theory of computation: initial remarks (Chapter 11)

Theory of computation: initial remarks (Chapter 11) Theory of computation: initial remarks (Chapter 11) For many purposes, computation is elegantly modeled with simple mathematical objects: Turing machines, finite automata, pushdown automata, and such.

More information

Automata Theory. Definition. Computational Complexity Theory. Computability Theory

Automata Theory. Definition. Computational Complexity Theory. Computability Theory Outline THEORY OF COMPUTATION CS363, SJTU What is Theory of Computation? History of Computation Branches and Development Xiaofeng Gao Dept. of Computer Science Shanghai Jiao Tong University 2 The Essential

More information

SOLUTION: SOLUTION: SOLUTION:

SOLUTION: SOLUTION: SOLUTION: Convert R and S into nondeterministic finite automata N1 and N2. Given a string s, if we know the states N1 and N2 may reach when s[1...i] has been read, we are able to derive the states N1 and N2 may

More information

Theory of Computer Science

Theory of Computer Science Theory of Computer Science D1. Turing-Computability Malte Helmert University of Basel April 18, 2016 Overview: Course contents of this course: logic How can knowledge be represented? How can reasoning

More information

Resources Control Graphs

Resources Control Graphs Resources Control Graphs Jean-Yves Moyen LIPN CNRS GeoCal ICC p. Motivations Programs analysis deal about uniform properties: Do all the executions terminate? Are all the executions performed within a

More information

CSCE 551: Chin-Tser Huang. University of South Carolina

CSCE 551: Chin-Tser Huang. University of South Carolina CSCE 551: Theory of Computation Chin-Tser Huang huangct@cse.sc.edu University of South Carolina Church-Turing Thesis The definition of the algorithm came in the 1936 papers of Alonzo Church h and Alan

More information

The Lambda Calculus. Stephen A. Edwards. Fall Columbia University

The Lambda Calculus. Stephen A. Edwards. Fall Columbia University The Lambda Calculus Stephen A. Edwards Columbia University Fall 2014 Lambda Expressions Function application written in prefix form. Add four and five is (+ 4 5) Evaluation: select a redex and evaluate

More information

CS294: Pseudorandomness and Combinatorial Constructions September 13, Notes for Lecture 5

CS294: Pseudorandomness and Combinatorial Constructions September 13, Notes for Lecture 5 UC Berkeley Handout N5 CS94: Pseudorandomness and Combinatorial Constructions September 3, 005 Professor Luca Trevisan Scribe: Gatis Midrijanis Notes for Lecture 5 In the few lectures we are going to look

More information

Normalization by Evaluation

Normalization by Evaluation Normalization by Evaluation Andreas Abel Department of Computer Science and Engineering Chalmers and Gothenburg University PhD Seminar in Mathematical Engineering EAFIT University, Medellin, Colombia 9

More information

Turing s thesis: (1930) Any computation carried out by mechanical means can be performed by a Turing Machine

Turing s thesis: (1930) Any computation carried out by mechanical means can be performed by a Turing Machine Turing s thesis: (1930) Any computation carried out by mechanical means can be performed by a Turing Machine There is no known model of computation more powerful than Turing Machines Definition of Algorithm:

More information

CSCI 1590 Intro to Computational Complexity

CSCI 1590 Intro to Computational Complexity CSCI 1590 Intro to Computational Complexity Space Complexity John E. Savage Brown University February 11, 2008 John E. Savage (Brown University) CSCI 1590 Intro to Computational Complexity February 11,

More information

SYLLABUS. Introduction to Finite Automata, Central Concepts of Automata Theory. CHAPTER - 3 : REGULAR EXPRESSIONS AND LANGUAGES

SYLLABUS. Introduction to Finite Automata, Central Concepts of Automata Theory. CHAPTER - 3 : REGULAR EXPRESSIONS AND LANGUAGES Contents i SYLLABUS UNIT - I CHAPTER - 1 : AUT UTOMA OMATA Introduction to Finite Automata, Central Concepts of Automata Theory. CHAPTER - 2 : FINITE AUT UTOMA OMATA An Informal Picture of Finite Automata,

More information

Turing Machines. Lecture 8

Turing Machines. Lecture 8 Turing Machines Lecture 8 1 Course Trajectory We will see algorithms, what can be done. But what cannot be done? 2 Computation Problem: To compute a function F that maps each input (a string) to an output

More information

Space Complexity. The space complexity of a program is how much memory it uses.

Space Complexity. The space complexity of a program is how much memory it uses. Space Complexity The space complexity of a program is how much memory it uses. Measuring Space When we compute the space used by a TM, we do not count the input (think of input as readonly). We say that

More information

Type Systems. Lecture 2 Oct. 27th, 2004 Sebastian Maneth.

Type Systems. Lecture 2 Oct. 27th, 2004 Sebastian Maneth. Type Systems Lecture 2 Oct. 27th, 2004 Sebastian Maneth http://lampwww.epfl.ch/teaching/typesystems/2004 Today 1. What is the Lambda Calculus? 2. Its Syntax and Semantics 3. Church Booleans and Church

More information

Decision Problems with TM s. Lecture 31: Halting Problem. Universe of discourse. Semi-decidable. Look at following sets: CSCI 81 Spring, 2012

Decision Problems with TM s. Lecture 31: Halting Problem. Universe of discourse. Semi-decidable. Look at following sets: CSCI 81 Spring, 2012 Decision Problems with TM s Look at following sets: Lecture 31: Halting Problem CSCI 81 Spring, 2012 Kim Bruce A TM = { M,w M is a TM and w L(M)} H TM = { M,w M is a TM which halts on input w} TOTAL TM

More information

Variable Automata over Infinite Alphabets

Variable Automata over Infinite Alphabets Variable Automata over Infinite Alphabets Orna Grumberg a, Orna Kupferman b, Sarai Sheinvald b a Department of Computer Science, The Technion, Haifa 32000, Israel b School of Computer Science and Engineering,

More information