Algorithmic Aspects of WQO (Well-Quasi-Ordering) Theory Part II: Algorithmic Applications of WQOs Sylvain Schmitz & Philippe Schnoebelen LSV, CNRS & ENS Cachan ESSLLI 2016, Bozen/Bolzano, Aug 22-26, 2016 Lecture notes & exercises available at http://www.lsv.fr/˜schmitz/teach/2016_esslli
I F YOU MISSED P ART I ( X , � ) is a well-quasi-ordering (a wqo) if any infinite sequence x 0 , x 1 , x 2 ... over X contains an increasing pair x i � x j (for some i < j ) Examples. 1. ( N k , � × ) is a wqo (Dickson’s Lemma) where, e.g., ( 3,2,1 ) � × ( 5,2,2 ) but ( 1,2,3 ) � × ( 5,2,2 ) 2. ( Σ ∗ , � ∗ ) is a wqo (Higman’s Lemma) where, e.g., abc � ∗ bacbc but cba � ∗ bacbc Intuition motivating this course: Analyzing the complexity of algorithms based on WQO-theory ≃ Bounding the index j (in the increasing pair above) as a function of some relevant parameters 2/9
I F YOU MISSED P ART I ( X , � ) is a well-quasi-ordering (a wqo) if any infinite sequence x 0 , x 1 , x 2 ... over X contains an increasing pair x i � x j (for some i < j ) Examples. 1. ( N k , � × ) is a wqo (Dickson’s Lemma) where, e.g., ( 3,2,1 ) � × ( 5,2,2 ) but ( 1,2,3 ) � × ( 5,2,2 ) 2. ( Σ ∗ , � ∗ ) is a wqo (Higman’s Lemma) where, e.g., abc � ∗ bacbc but cba � ∗ bacbc Intuition motivating this course: Analyzing the complexity of algorithms based on WQO-theory ≃ Bounding the index j (in the increasing pair above) as a function of some relevant parameters 2/9
O UTLINE FOR P ART II ◮ Well-structured transition systems (WSTS’s) and their decision algorithms ◮ Termination proofs for programs ◮ Relevance logics and their decidability ◮ ... Karp-Miller trees ? All of these are actual examples of algorithms that terminate thanks to wqo-theoretical arguments Question for Part III. terminate in how many steps exactly? 3/9
O UTLINE FOR P ART II ◮ Well-structured transition systems (WSTS’s) and their decision algorithms ◮ Termination proofs for programs ◮ Relevance logics and their decidability ◮ ... Karp-Miller trees ? All of these are actual examples of algorithms that terminate thanks to wqo-theoretical arguments Question for Part III. terminate in how many steps exactly? 3/9
WSTS: W ELL - STRUCTURED TRANSITION SYSTEMS In program verification, wqo’s appear prominently under the guise of WSTS. Def. A WSTS is a system ( S , − → , � ) where 1. ( S , − → ) with − →⊆ S × S is a transition system 2. the set of states ( S , � ) is wqo, and 3. the transition relation is compatible with the ordering (also called → t and s � s ′ imply s ′ − → t ′ for some t ′ � t “monotonic”): s − 4/9
S OME WSTS’ S : M ONOTONIC C OUNTER M ACHINES c 1 0 c 2 >0? c 2 -- c 3 :=0 c 1 ++ ℓ 0 ℓ 1 ℓ 2 ℓ 3 c 2 1 c 1 := c 3 c 1 > = 10 ? c 3 4 A run of M : ( ℓ 0 ,0,1,4 ) − → ( ℓ 1 ,1,1,4 ) − → ( ℓ 2 ,1,0,4 ) − → ( ℓ 3 ,1,0,0 ) Ordering states: ( ℓ 1 ,0,0,0 ) � ( ℓ 1 ,0,1,2 ) but ( ℓ 1 ,0,0,0 ) � ( ℓ 2 ,0,1,2 ) . This is wqo as a product of wqo’s: ( Loc , =) × ( N 3 , � × ) Compatibility: easily checked when guards are upward-closed and assignments are monotonic functions of the variables. NB. Other updates can be considered as long as they are monotonic. Extending guards require using a finer ordering. Question. How does this compare to Minsky (counter) machines? 5/9
S OME WSTS’ S : M ONOTONIC C OUNTER M ACHINES c 1 0 c 2 >0? c 2 -- c 3 :=0 c 1 ++ ℓ 0 ℓ 1 ℓ 2 ℓ 3 c 2 1 c 1 := c 3 c 1 > = 10 ? c 3 4 A run of M : ( ℓ 0 ,0,1,4 ) − → ( ℓ 1 ,1,1,4 ) − → ( ℓ 2 ,1,0,4 ) − → ( ℓ 3 ,1,0,0 ) Ordering states: ( ℓ 1 ,0,0,0 ) � ( ℓ 1 ,0,1,2 ) but ( ℓ 1 ,0,0,0 ) � ( ℓ 2 ,0,1,2 ) . This is wqo as a product of wqo’s: ( Loc , =) × ( N 3 , � × ) Compatibility: easily checked when guards are upward-closed and assignments are monotonic functions of the variables. NB. Other updates can be considered as long as they are monotonic. Extending guards require using a finer ordering. Question. How does this compare to Minsky (counter) machines? 5/9
S OME WSTS’ S : M ONOTONIC C OUNTER M ACHINES c 1 0 c 2 >0? c 2 -- c 3 :=0 c 1 ++ ℓ 0 ℓ 1 ℓ 2 ℓ 3 c 2 1 c 1 := c 3 c 1 > = 10 ? c 3 4 A run of M : ( ℓ 0 ,0,1,4 ) − → ( ℓ 1 ,1,1,4 ) − → ( ℓ 2 ,1,0,4 ) − → ( ℓ 3 ,1,0,0 ) Ordering states: ( ℓ 1 ,0,0,0 ) � ( ℓ 1 ,0,1,2 ) but ( ℓ 1 ,0,0,0 ) � ( ℓ 2 ,0,1,2 ) . This is wqo as a product of wqo’s: ( Loc , =) × ( N 3 , � × ) Compatibility: easily checked when guards are upward-closed and assignments are monotonic functions of the variables. NB. Other updates can be considered as long as they are monotonic. Extending guards require using a finer ordering. Question. How does this compare to Minsky (counter) machines? 5/9
S OME WSTS’ S : M ONOTONIC C OUNTER M ACHINES c 1 0 c 2 >0? c 2 -- c 3 :=0 c 1 ++ ℓ 0 ℓ 1 ℓ 2 ℓ 3 c 2 1 c 1 := c 3 c 1 > = 10 ? c 3 4 A run of M : ( ℓ 0 ,0,1,4 ) − → ( ℓ 1 ,1,1,4 ) − → ( ℓ 2 ,1,0,4 ) − → ( ℓ 3 ,1,0,0 ) Ordering states: ( ℓ 1 ,0,0,0 ) � ( ℓ 1 ,0,1,2 ) but ( ℓ 1 ,0,0,0 ) � ( ℓ 2 ,0,1,2 ) . This is wqo as a product of wqo’s: ( Loc , =) × ( N 3 , � × ) Compatibility: easily checked when guards are upward-closed and assignments are monotonic functions of the variables. NB. Other updates can be considered as long as they are monotonic. Extending guards require using a finer ordering. Question. How does this compare to Minsky (counter) machines? 5/9
S OME WSTS’ S : M ONOTONIC C OUNTER M ACHINES c 1 0 c 2 >0? c 2 -- c 3 :=0 c 1 ++ ℓ 0 ℓ 1 ℓ 2 ℓ 3 c 2 1 c 1 := c 3 c 1 > = 10 ? c 3 4 A run of M : ( ℓ 0 ,0,1,4 ) − → ( ℓ 1 ,1,1,4 ) − → ( ℓ 2 ,1,0,4 ) − → ( ℓ 3 ,1,0,0 ) Ordering states: ( ℓ 1 ,0,0,0 ) � ( ℓ 1 ,0,1,2 ) but ( ℓ 1 ,0,0,0 ) � ( ℓ 2 ,0,1,2 ) . This is wqo as a product of wqo’s: ( Loc , =) × ( N 3 , � × ) Compatibility: easily checked when guards are upward-closed and assignments are monotonic functions of the variables. NB. Other updates can be considered as long as they are monotonic. Extending guards require using a finer ordering. Question. How does this compare to Minsky (counter) machines? 5/9
S OME WSTS’ S : R ELATIONAL AUTOMATA c 1 1 c 2 := ??; c 1 := c 3 c 1 < c 2 ? ℓ 0 ℓ 1 ℓ 2 0 c 2 c 3 :=-1 c 1 = 10 > c 2 = c 3 ? − 4 c 3 Guards: comparisons between counters and constants Updates: assignments with counter values and constants One does not use � × to compare states!! Rather ( a 1 ,..., a k ) � sparse ( b 1 ,..., b k ) def � � � � ⇔ ∀ i , j = 1,..., k : a i � a j iff b i � b j ∧ | a i − a j | � | b i − b j | . Fact. ( Z k , � sparse ) is wqo def ( ℓ , a 1 ,..., a k ) � ( ℓ ′ , b 1 ,..., b k ) Compatibility: We use ⇔ ℓ = ℓ ′ ∧ ( a 1 ,..., a k , − 1,10 ) � sparse ( b 1 ,..., b k , − 1,10 ) . 6/9
S OME WSTS’ S : R ELATIONAL AUTOMATA c 1 1 c 2 := ??; c 1 := c 3 c 1 < c 2 ? ℓ 0 ℓ 1 ℓ 2 0 c 2 c 3 :=-1 c 1 = 10 > c 2 = c 3 ? − 4 c 3 Guards: comparisons between counters and constants Updates: assignments with counter values and constants One does not use � × to compare states!! Rather ( a 1 ,..., a k ) � sparse ( b 1 ,..., b k ) def � � � � ⇔ ∀ i , j = 1,..., k : a i � a j iff b i � b j ∧ | a i − a j | � | b i − b j | . Fact. ( Z k , � sparse ) is wqo def ( ℓ , a 1 ,..., a k ) � ( ℓ ′ , b 1 ,..., b k ) Compatibility: We use ⇔ ℓ = ℓ ′ ∧ ( a 1 ,..., a k , − 1,10 ) � sparse ( b 1 ,..., b k , − 1,10 ) . 6/9
S OME WSTS’ S : R ELATIONAL AUTOMATA c 1 1 c 2 := ??; c 1 := c 3 c 1 < c 2 ? ℓ 0 ℓ 1 ℓ 2 0 c 2 c 3 :=-1 c 1 = 10 > c 2 = c 3 ? − 4 c 3 Guards: comparisons between counters and constants Updates: assignments with counter values and constants One does not use � × to compare states!! Rather ( a 1 ,..., a k ) � sparse ( b 1 ,..., b k ) def � � � � ⇔ ∀ i , j = 1,..., k : a i � a j iff b i � b j ∧ | a i − a j | � | b i − b j | . Fact. ( Z k , � sparse ) is wqo def ( ℓ , a 1 ,..., a k ) � ( ℓ ′ , b 1 ,..., b k ) Compatibility: We use ⇔ ℓ = ℓ ′ ∧ ( a 1 ,..., a k , − 1,10 ) � sparse ( b 1 ,..., b k , − 1,10 ) . 6/9
S OME WSTS’ S : R ELATIONAL AUTOMATA c 1 1 c 2 := ??; c 1 := c 3 c 1 < c 2 ? ℓ 0 ℓ 1 ℓ 2 0 c 2 c 3 :=-1 c 1 = 10 > c 2 = c 3 ? − 4 c 3 Guards: comparisons between counters and constants Updates: assignments with counter values and constants One does not use � × to compare states!! Rather ( a 1 ,..., a k ) � sparse ( b 1 ,..., b k ) def � � � � ⇔ ∀ i , j = 1,..., k : a i � a j iff b i � b j ∧ | a i − a j | � | b i − b j | . Fact. ( Z k , � sparse ) is wqo def ( ℓ , a 1 ,..., a k ) � ( ℓ ′ , b 1 ,..., b k ) Compatibility: We use ⇔ ℓ = ℓ ′ ∧ ( a 1 ,..., a k , − 1,10 ) � sparse ( b 1 ,..., b k , − 1,10 ) . 6/9
Recommend
More recommend