Logical Foundations of Cyber-Physical Systems Andr Platzer Andr - PowerPoint PPT Presentation
07: Control Loops & Invariants Logical Foundations of Cyber-Physical Systems Andr Platzer Logical Foundations of Cyber-Physical Systems Andr Platzer Andr Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 1 / 16
A Simple Discrete Loop Example loop Ξ β’ J , β J β’ [ Ξ± ] J J β’ P Ξ β’ [ Ξ± β ] P , β x β₯ 8 β§ 5 β₯ y β§ y β₯ 0 β’ J J β’ [ x := x + y ; y := x β 2 Β· y ] J J β’ x β₯ 0 loop x β₯ 8 β§ 5 β₯ y β§ y β₯ 0 β’ [( x := x + y ; y := x β 2 Β· y ) β ] x β₯ 0 β R β’ x β₯ 8 β§ 5 β₯ y β§ y β₯ 0 β [( x := x + y ; y := x β 2 Β· y ) β ] x β₯ 0 J β‘ x β₯ 0 stronger: Lacks info about y 1 J β‘ x β₯ 8 β§ 5 β₯ y β§ y β₯ 0 weaker: Changes immediately 2 J β‘ x β₯ 0 β§ y β₯ 0 3 AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 8 / 16
A Simple Discrete Loop Example loop Ξ β’ J , β J β’ [ Ξ± ] J J β’ P Ξ β’ [ Ξ± β ] P , β x β₯ 8 β§ 5 β₯ y β§ y β₯ 0 β’ J J β’ [ x := x + y ; y := x β 2 Β· y ] J J β’ x β₯ 0 loop x β₯ 8 β§ 5 β₯ y β§ y β₯ 0 β’ [( x := x + y ; y := x β 2 Β· y ) β ] x β₯ 0 β R β’ x β₯ 8 β§ 5 β₯ y β§ y β₯ 0 β [( x := x + y ; y := x β 2 Β· y ) β ] x β₯ 0 J β‘ x β₯ 0 stronger: Lacks info about y 1 J β‘ x β₯ 8 β§ 5 β₯ y β§ y β₯ 0 weaker: Changes immediately 2 J β‘ x β₯ 0 β§ y β₯ 0 no: y may become negative if x < y 3 AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 8 / 16
A Simple Discrete Loop Example loop Ξ β’ J , β J β’ [ Ξ± ] J J β’ P Ξ β’ [ Ξ± β ] P , β x β₯ 8 β§ 5 β₯ y β§ y β₯ 0 β’ J J β’ [ x := x + y ; y := x β 2 Β· y ] J J β’ x β₯ 0 loop x β₯ 8 β§ 5 β₯ y β§ y β₯ 0 β’ [( x := x + y ; y := x β 2 Β· y ) β ] x β₯ 0 β R β’ x β₯ 8 β§ 5 β₯ y β§ y β₯ 0 β [( x := x + y ; y := x β 2 Β· y ) β ] x β₯ 0 J β‘ x β₯ 0 stronger: Lacks info about y 1 J β‘ x β₯ 8 β§ 5 β₯ y β§ y β₯ 0 weaker: Changes immediately 2 J β‘ x β₯ 0 β§ y β₯ 0 no: y may become negative if x < y 3 J β‘ x β₯ y β§ y β₯ 0 4 AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 8 / 16
A Simple Discrete Loop Example loop Ξ β’ J , β J β’ [ Ξ± ] J J β’ P Ξ β’ [ Ξ± β ] P , β x β₯ 8 β§ 5 β₯ y β§ y β₯ 0 β’ J J β’ [ x := x + y ; y := x β 2 Β· y ] J J β’ x β₯ 0 loop x β₯ 8 β§ 5 β₯ y β§ y β₯ 0 β’ [( x := x + y ; y := x β 2 Β· y ) β ] x β₯ 0 β R β’ x β₯ 8 β§ 5 β₯ y β§ y β₯ 0 β [( x := x + y ; y := x β 2 Β· y ) β ] x β₯ 0 J β‘ x β₯ 0 stronger: Lacks info about y 1 J β‘ x β₯ 8 β§ 5 β₯ y β§ y β₯ 0 weaker: Changes immediately 2 J β‘ x β₯ 0 β§ y β₯ 0 no: y may become negative if x < y 3 J β‘ x β₯ y β§ y β₯ 0 correct loop invariant 4 AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 8 / 16
Forgot to Add Sequent Context Ξ , β to Premises Ξ β’ J , β Ξ?? , J β’ [ Ξ± ] J , β?? Ξ?? , J β’ P , β?? Ξ β’ [ Ξ± β ] P , β AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 9 / 16
Forgot to Add Sequent Context Ξ , β to Premises Ξ β’ J , β Ξ?? , J β’ [ Ξ± ] J , β?? Ξ?? , J β’ P , β?? Ξ β’ [ Ξ± β ] P , β x = 0 β’ x β€ 1 x = 0 , x β€ 1 β’ [ x := x + 1 ] x β€ 1 x β€ 1 β’ x β€ 1 οΏ½ x = 0 , x β€ 1 β’ [( x := x + 1 ) β ] x β€ 1 AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 9 / 16
Forgot to Add Sequent Context Ξ , β to Premises Ξ β’ J , β Ξ?? , J β’ [ Ξ± ] J , β?? Ξ?? , J β’ P , β?? Ξ β’ [ Ξ± β ] P , β x = 0 β’ x β€ 1 x = 0 , x β€ 1 β’ [ x := x + 1 ] x β€ 1 x β€ 1 β’ x β€ 1 οΏ½ x = 0 , x β€ 1 β’ [( x := x + 1 ) β ] x β€ 1 x = 0 β’ x β₯ 0 x β₯ 0 β’ [ x := x + 1 ] x β₯ 0 x = 0 , x β₯ 0 β’ x = 0 οΏ½ x = 0 β’ [( x := x + 1 ) β ] x = 0 AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 9 / 16
Forgot to Add Sequent Context Ξ , β to Premises Ξ β’ J , β Ξ?? , J β’ [ Ξ± ] J , β?? Ξ?? , J β’ P , β?? Ξ β’ [ Ξ± β ] P , β x = 0 β’ x β€ 1 x = 0 , x β€ 1 β’ [ x := x + 1 ] x β€ 1 x β€ 1 β’ x β€ 1 οΏ½ x = 0 , x β€ 1 β’ [( x := x + 1 ) β ] x β€ 1 x = 0 β’ x β₯ 0 x β₯ 0 β’ [ x := x + 1 ] x β₯ 0 x = 0 , x β₯ 0 β’ x = 0 οΏ½ x = 0 β’ [( x := x + 1 ) β ] x = 0 Unsound! Be careful where your assumptions go, or your CPS might go where it shouldnβt. AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 9 / 16
Outline Learning Objectives 1 Induction for Loops 2 Iteration Axiom Induction Axiom Induction Rule for Loops Loop Invariants Simple Example Contextual Soundness Requirements Operationalize Invariant Construction 3 Bouncing Ball Rescuing Misplaced Constants Safe Quantum Summary 4 AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 9 / 16
Proving Quantum the Acrophobic Bouncing Ball οΏ½ β ] B ( x , v ) οΏ½ A β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ) A β‘ 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 B ( x , v ) β‘ 0 β€ x β§ x β€ H grav β‘ { x β² = v , v β² = β g & x β₯ 0 } AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 10 / 16
Proving Quantum the Acrophobic Bouncing Ball A β’ j ( x , v ) j ( x , v ) β’ B ( x , v ) j ( x , v ) β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 )] j ( x , v ) loop οΏ½ β ] B ( x , v ) οΏ½ A β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ) A β‘ 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 B ( x , v ) β‘ 0 β€ x β§ x β€ H grav β‘ { x β² = v , v β² = β g & x β₯ 0 } AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 10 / 16
Proving Quantum the Acrophobic Bouncing Ball j ( x , v ) β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 )] j ( x , v ) A β’ j ( x , v ) j ( x , v ) β’ B ( x , v ) j ( x , v ) β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 )] j ( x , v ) loop οΏ½ β ] B ( x , v ) οΏ½ A β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ) A β‘ 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 B ( x , v ) β‘ 0 β€ x β§ x β€ H grav β‘ { x β² = v , v β² = β g & x β₯ 0 } AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 10 / 16
Proving Quantum the Acrophobic Bouncing Ball j ( x , v ) β’ [ grav ][? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ] j ( x , v ) [;] j ( x , v ) β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 )] j ( x , v ) A β’ j ( x , v ) j ( x , v ) β’ B ( x , v ) j ( x , v ) β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 )] j ( x , v ) loop οΏ½ β ] B ( x , v ) οΏ½ A β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ) A β‘ 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 B ( x , v ) β‘ 0 β€ x β§ x β€ H grav β‘ { x β² = v , v β² = β g & x β₯ 0 } AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 10 / 16
Proving Quantum the Acrophobic Bouncing Ball j ( x , v ) β’ [ grav ] j ( x , v ) j ( x , v ) β’ [? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ] j ( x , v ) MR j ( x , v ) β’ [ grav ][? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ] j ( x , v ) [;] j ( x , v ) β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 )] j ( x , v ) A β’ j ( x , v ) j ( x , v ) β’ B ( x , v ) j ( x , v ) β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 )] j ( x , v ) loop οΏ½ β ] B ( x , v ) οΏ½ A β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ) A β‘ 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 B ( x , v ) β‘ 0 β€ x β§ x β€ H grav β‘ { x β² = v , v β² = β g & x β₯ 0 } AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 10 / 16
Proving Quantum the Acrophobic Bouncing Ball j ( x , v ) β’ [? x = 0 ; v := β cv ] j ( x , v ) β§ [? x οΏ½ = 0 ] j ( x , v ) j ( x , v ) β’ [ grav ] j ( x , v ) [ βͺ ] j ( x , v ) β’ [? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ] j ( x , v ) MR j ( x , v ) β’ [ grav ][? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ] j ( x , v ) [;] j ( x , v ) β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 )] j ( x , v ) A β’ j ( x , v ) j ( x , v ) β’ B ( x , v ) j ( x , v ) β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 )] j ( x , v ) loop οΏ½ β ] B ( x , v ) οΏ½ A β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ) A β‘ 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 B ( x , v ) β‘ 0 β€ x β§ x β€ H grav β‘ { x β² = v , v β² = β g & x β₯ 0 } AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 10 / 16
Proving Quantum the Acrophobic Bouncing Ball β§ R j ( x , v ) β’ [? x = 0 ; v := β cv ] j ( x , v ) j ( x , v ) β’ [? x οΏ½ = 0 ] j ( x , v ) j ( x , v ) β’ [? x = 0 ; v := β cv ] j ( x , v ) β§ [? x οΏ½ = 0 ] j ( x , v ) j ( x , v ) β’ [ grav ] j ( x , v ) [ βͺ ] j ( x , v ) β’ [? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ] j ( x , v ) MR j ( x , v ) β’ [ grav ][? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ] j ( x , v ) [;] j ( x , v ) β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 )] j ( x , v ) A β’ j ( x , v ) j ( x , v ) β’ B ( x , v ) j ( x , v ) β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 )] j ( x , v ) loop οΏ½ β ] B ( x , v ) οΏ½ A β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ) A β‘ 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 B ( x , v ) β‘ 0 β€ x β§ x β€ H grav β‘ { x β² = v , v β² = β g & x β₯ 0 } AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 10 / 16
Proving Quantum the Acrophobic Bouncing Ball [;] j ( x , v ) β’ [? x = 0 ][ v := β cv ] j ( x , v ) j ( x , v ) β’ [? x = 0 ; v := β cv ] j ( x , v ) j ( x , v ) β’ [? x οΏ½ = 0 ] j ( x , v ) β§ R j ( x , v ) β’ [? x = 0 ; v := β cv ] j ( x , v ) β§ [? x οΏ½ = 0 ] j ( x , v ) j ( x , v ) β’ [ grav ] j ( x , v ) [ βͺ ] j ( x , v ) β’ [? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ] j ( x , v ) MR j ( x , v ) β’ [ grav ][? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ] j ( x , v ) [;] j ( x , v ) β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 )] j ( x , v ) A β’ j ( x , v ) j ( x , v ) β’ B ( x , v ) j ( x , v ) β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 )] j ( x , v ) loop οΏ½ β ] B ( x , v ) οΏ½ A β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ) A β‘ 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 B ( x , v ) β‘ 0 β€ x β§ x β€ H grav β‘ { x β² = v , v β² = β g & x β₯ 0 } AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 10 / 16
Proving Quantum the Acrophobic Bouncing Ball [?] , β R j ( x , v ) , x = 0 β’ [ v := β cv ] j ( x , v ) j ( x , v ) β’ [? x = 0 ][ v := β cv ] j ( x , v ) [;] j ( x , v ) β’ [? x = 0 ; v := β cv ] j ( x , v ) j ( x , v ) β’ [? x οΏ½ = 0 ] j ( x , v ) β§ R j ( x , v ) β’ [? x = 0 ; v := β cv ] j ( x , v ) β§ [? x οΏ½ = 0 ] j ( x , v ) j ( x , v ) β’ [ grav ] j ( x , v ) [ βͺ ] j ( x , v ) β’ [? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ] j ( x , v ) MR j ( x , v ) β’ [ grav ][? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ] j ( x , v ) [;] j ( x , v ) β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 )] j ( x , v ) A β’ j ( x , v ) j ( x , v ) β’ B ( x , v ) j ( x , v ) β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 )] j ( x , v ) loop οΏ½ β ] B ( x , v ) οΏ½ A β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ) A β‘ 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 B ( x , v ) β‘ 0 β€ x β§ x β€ H grav β‘ { x β² = v , v β² = β g & x β₯ 0 } AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 10 / 16
Proving Quantum the Acrophobic Bouncing Ball j ( x , v ) , x = 0 β’ j ( x , β cv ) [:=] j ( x , v ) , x = 0 β’ [ v := β cv ] j ( x , v ) [?] , β R j ( x , v ) β’ [? x = 0 ][ v := β cv ] j ( x , v ) [;] j ( x , v ) β’ [? x = 0 ; v := β cv ] j ( x , v ) j ( x , v ) β’ [? x οΏ½ = 0 ] j ( x , v ) β§ R j ( x , v ) β’ [? x = 0 ; v := β cv ] j ( x , v ) β§ [? x οΏ½ = 0 ] j ( x , v ) j ( x , v ) β’ [ grav ] j ( x , v ) [ βͺ ] j ( x , v ) β’ [? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ] j ( x , v ) MR j ( x , v ) β’ [ grav ][? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ] j ( x , v ) [;] j ( x , v ) β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 )] j ( x , v ) A β’ j ( x , v ) j ( x , v ) β’ B ( x , v ) j ( x , v ) β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 )] j ( x , v ) loop οΏ½ β ] B ( x , v ) οΏ½ A β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ) A β‘ 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 B ( x , v ) β‘ 0 β€ x β§ x β€ H grav β‘ { x β² = v , v β² = β g & x β₯ 0 } AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 10 / 16
Proving Quantum the Acrophobic Bouncing Ball j ( x , v ) , x = 0 β’ j ( x , β cv ) [:=] j ( x , v ) , x = 0 β’ [ v := β cv ] j ( x , v ) [?] , β R j ( x , v ) , x οΏ½ = 0 β’ j ( x , v ) j ( x , v ) β’ [? x = 0 ][ v := β cv ] j ( x , v ) [;] [?] j ( x , v ) β’ [? x = 0 ; v := β cv ] j ( x , v ) j ( x , v ) β’ [? x οΏ½ = 0 ] j ( x , v ) β§ R j ( x , v ) β’ [? x = 0 ; v := β cv ] j ( x , v ) β§ [? x οΏ½ = 0 ] j ( x , v ) j ( x , v ) β’ [ grav ] j ( x , v ) [ βͺ ] j ( x , v ) β’ [? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ] j ( x , v ) MR j ( x , v ) β’ [ grav ][? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ] j ( x , v ) [;] j ( x , v ) β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 )] j ( x , v ) A β’ j ( x , v ) j ( x , v ) β’ B ( x , v ) j ( x , v ) β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 )] j ( x , v ) loop οΏ½ β ] B ( x , v ) οΏ½ A β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ) A β‘ 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 B ( x , v ) β‘ 0 β€ x β§ x β€ H grav β‘ { x β² = v , v β² = β g & x β₯ 0 } AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 10 / 16
Proving Quantum the Acrophobic Bouncing Ball j ( x , v ) , x = 0 β’ j ( x , β cv ) [:=] j ( x , v ) , x = 0 β’ [ v := β cv ] j ( x , v ) [?] , β R j ( x , v ) , x οΏ½ = 0 β’ j ( x , v ) j ( x , v ) β’ [? x = 0 ][ v := β cv ] j ( x , v ) [;] [?] j ( x , v ) β’ [? x = 0 ; v := β cv ] j ( x , v ) j ( x , v ) β’ [? x οΏ½ = 0 ] j ( x , v ) β§ R j ( x , v ) β’ [? x = 0 ; v := β cv ] j ( x , v ) β§ [? x οΏ½ = 0 ] j ( x , v ) j ( x , v ) β’ [ grav ] j ( x , v ) [ βͺ ] j ( x , v ) β’ [? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ] j ( x , v ) MR j ( x , v ) β’ [ grav ][? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ] j ( x , v ) [;] j ( x , v ) β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 )] j ( x , v ) A β’ j ( x , v ) j ( x , v ) β’ B ( x , v ) j ( x , v ) β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 )] j ( x , v ) loop οΏ½ β ] B ( x , v ) οΏ½ A β’ [ grav ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ) A β‘ 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 B ( x , v ) β‘ 0 β€ x β§ x β€ H grav β‘ { x β² = v , v β² = β g & x β₯ 0 } AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 10 / 16
Proving Quantum the Acrophobic Bouncing Ball A β’ j ( x , v ) j ( x , v ) β’ [ grav ]( j ( x , v ) ) j ( x , v ) , x = 0 β’ j ( x , ( β cv )) j ( x , v ) , x οΏ½ = 0 β’ j ( x , v ) j ( x , v ) β’ B ( x , v ) A β‘ 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 B ( x , v ) β‘ 0 β€ x β§ x β€ H grav β‘ { x β² = v , v β² = β g & x β₯ 0 } AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 11 / 16
Proving Quantum the Acrophobic Bouncing Ball 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 β’ j ( x , v ) j ( x , v ) β’ [ { x β² = v , v β² = β g & x β₯ 0 } ]( j ( x , v ) ) j ( x , v ) , x = 0 β’ j ( x , ( β cv )) j ( x , v ) , x οΏ½ = 0 β’ j ( x , v ) j ( x , v ) β’ 0 β€ x β§ x β€ H A β‘ 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 B ( x , v ) β‘ 0 β€ x β§ x β€ H grav β‘ { x β² = v , v β² = β g & x β₯ 0 } AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 11 / 16
Proving Quantum the Acrophobic Bouncing Ball 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 β’ j ( x , v ) j ( x , v ) β’ [ { x β² = v , v β² = β g & x β₯ 0 } ]( j ( x , v ) ) j ( x , v ) , x = 0 β’ j ( x , ( β cv )) j ( x , v ) , x οΏ½ = 0 β’ j ( x , v ) j ( x , v ) β’ 0 β€ x β§ x β€ H j ( x , v ) β‘ 0 β€ x β§ x β€ H 2 A β‘ 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 B ( x , v ) β‘ 0 β€ x β§ x β€ H grav β‘ { x β² = v , v β² = β g & x β₯ 0 } AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 11 / 16
Proving Quantum the Acrophobic Bouncing Ball 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 β’ j ( x , v ) j ( x , v ) β’ [ { x β² = v , v β² = β g & x β₯ 0 } ]( j ( x , v ) ) j ( x , v ) , x = 0 β’ j ( x , ( β cv )) j ( x , v ) , x οΏ½ = 0 β’ j ( x , v ) j ( x , v ) β’ 0 β€ x β§ x β€ H j ( x , v ) β‘ 0 β€ x β§ x β€ H weak: fails ODE if v β« 0 2 A β‘ 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 B ( x , v ) β‘ 0 β€ x β§ x β€ H grav β‘ { x β² = v , v β² = β g & x β₯ 0 } AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 11 / 16
Proving Quantum the Acrophobic Bouncing Ball 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 β’ j ( x , v ) j ( x , v ) β’ [ { x β² = v , v β² = β g & x β₯ 0 } ]( j ( x , v ) ) j ( x , v ) , x = 0 β’ j ( x , ( β cv )) j ( x , v ) , x οΏ½ = 0 β’ j ( x , v ) j ( x , v ) β’ 0 β€ x β§ x β€ H j ( x , v ) β‘ x β₯ 0 1 j ( x , v ) β‘ 0 β€ x β§ x β€ H weak: fails ODE if v β« 0 2 A β‘ 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 B ( x , v ) β‘ 0 β€ x β§ x β€ H grav β‘ { x β² = v , v β² = β g & x β₯ 0 } AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 11 / 16
Proving Quantum the Acrophobic Bouncing Ball 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 β’ j ( x , v ) j ( x , v ) β’ [ { x β² = v , v β² = β g & x β₯ 0 } ]( j ( x , v ) ) j ( x , v ) , x = 0 β’ j ( x , ( β cv )) j ( x , v ) , x οΏ½ = 0 β’ j ( x , v ) j ( x , v ) β’ 0 β€ x β§ x β€ H j ( x , v ) β‘ x β₯ 0 weaker: fails postcondition if x > H 1 j ( x , v ) β‘ 0 β€ x β§ x β€ H weak: fails ODE if v β« 0 2 A β‘ 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 B ( x , v ) β‘ 0 β€ x β§ x β€ H grav β‘ { x β² = v , v β² = β g & x β₯ 0 } AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 11 / 16
Proving Quantum the Acrophobic Bouncing Ball 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 β’ j ( x , v ) j ( x , v ) β’ [ { x β² = v , v β² = β g & x β₯ 0 } ]( j ( x , v ) ) j ( x , v ) , x = 0 β’ j ( x , ( β cv )) j ( x , v ) , x οΏ½ = 0 β’ j ( x , v ) j ( x , v ) β’ 0 β€ x β§ x β€ H j ( x , v ) β‘ x β₯ 0 weaker: fails postcondition if x > H 1 j ( x , v ) β‘ 0 β€ x β§ x β€ H weak: fails ODE if v β« 0 2 j ( x , v ) β‘ x = 0 β§ v = 0 3 A β‘ 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 B ( x , v ) β‘ 0 β€ x β§ x β€ H grav β‘ { x β² = v , v β² = β g & x β₯ 0 } AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 11 / 16
Proving Quantum the Acrophobic Bouncing Ball 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 β’ j ( x , v ) j ( x , v ) β’ [ { x β² = v , v β² = β g & x β₯ 0 } ]( j ( x , v ) ) j ( x , v ) , x = 0 β’ j ( x , ( β cv )) j ( x , v ) , x οΏ½ = 0 β’ j ( x , v ) j ( x , v ) β’ 0 β€ x β§ x β€ H j ( x , v ) β‘ x β₯ 0 weaker: fails postcondition if x > H 1 j ( x , v ) β‘ 0 β€ x β§ x β€ H weak: fails ODE if v β« 0 2 j ( x , v ) β‘ x = 0 β§ v = 0 strong: fails initial condition if x > 0 3 A β‘ 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 B ( x , v ) β‘ 0 β€ x β§ x β€ H grav β‘ { x β² = v , v β² = β g & x β₯ 0 } AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 11 / 16
Proving Quantum the Acrophobic Bouncing Ball 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 β’ j ( x , v ) j ( x , v ) β’ [ { x β² = v , v β² = β g & x β₯ 0 } ]( j ( x , v ) ) j ( x , v ) , x = 0 β’ j ( x , ( β cv )) j ( x , v ) , x οΏ½ = 0 β’ j ( x , v ) j ( x , v ) β’ 0 β€ x β§ x β€ H j ( x , v ) β‘ x β₯ 0 weaker: fails postcondition if x > H 1 j ( x , v ) β‘ 0 β€ x β§ x β€ H weak: fails ODE if v β« 0 2 j ( x , v ) β‘ x = 0 β§ v = 0 strong: fails initial condition if x > 0 3 j ( x , v ) β‘ x = 0 β¨ x = H β§ v = 0 4 A β‘ 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 B ( x , v ) β‘ 0 β€ x β§ x β€ H grav β‘ { x β² = v , v β² = β g & x β₯ 0 } AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 11 / 16
Proving Quantum the Acrophobic Bouncing Ball 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 β’ j ( x , v ) j ( x , v ) β’ [ { x β² = v , v β² = β g & x β₯ 0 } ]( j ( x , v ) ) j ( x , v ) , x = 0 β’ j ( x , ( β cv )) j ( x , v ) , x οΏ½ = 0 β’ j ( x , v ) j ( x , v ) β’ 0 β€ x β§ x β€ H j ( x , v ) β‘ x β₯ 0 weaker: fails postcondition if x > H 1 j ( x , v ) β‘ 0 β€ x β§ x β€ H weak: fails ODE if v β« 0 2 j ( x , v ) β‘ x = 0 β§ v = 0 strong: fails initial condition if x > 0 3 j ( x , v ) β‘ x = 0 β¨ x = H β§ v = 0 no space for intermediate states 4 A β‘ 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 B ( x , v ) β‘ 0 β€ x β§ x β€ H grav β‘ { x β² = v , v β² = β g & x β₯ 0 } AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 11 / 16
Proving Quantum the Acrophobic Bouncing Ball 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 β’ j ( x , v ) j ( x , v ) β’ [ { x β² = v , v β² = β g & x β₯ 0 } ]( j ( x , v ) ) j ( x , v ) , x = 0 β’ j ( x , ( β cv )) j ( x , v ) , x οΏ½ = 0 β’ j ( x , v ) j ( x , v ) β’ 0 β€ x β§ x β€ H j ( x , v ) β‘ x β₯ 0 weaker: fails postcondition if x > H 1 j ( x , v ) β‘ 0 β€ x β§ x β€ H weak: fails ODE if v β« 0 2 j ( x , v ) β‘ x = 0 β§ v = 0 strong: fails initial condition if x > 0 3 j ( x , v ) β‘ x = 0 β¨ x = H β§ v = 0 no space for intermediate states 4 j ( x , v ) β‘ 2 gx = 2 gH β v 2 β§ x β₯ 0 5 A β‘ 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 B ( x , v ) β‘ 0 β€ x β§ x β€ H grav β‘ { x β² = v , v β² = β g & x β₯ 0 } AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 11 / 16
Proving Quantum the Acrophobic Bouncing Ball 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 β’ j ( x , v ) j ( x , v ) β’ [ { x β² = v , v β² = β g & x β₯ 0 } ]( j ( x , v ) ) j ( x , v ) , x = 0 β’ j ( x , ( β cv )) j ( x , v ) , x οΏ½ = 0 β’ j ( x , v ) j ( x , v ) β’ 0 β€ x β§ x β€ H j ( x , v ) β‘ x β₯ 0 weaker: fails postcondition if x > H 1 j ( x , v ) β‘ 0 β€ x β§ x β€ H weak: fails ODE if v β« 0 2 j ( x , v ) β‘ x = 0 β§ v = 0 strong: fails initial condition if x > 0 3 j ( x , v ) β‘ x = 0 β¨ x = H β§ v = 0 no space for intermediate states 4 j ( x , v ) β‘ 2 gx = 2 gH β v 2 β§ x β₯ 0 works: implicitly links v and x 5 A β‘ 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 B ( x , v ) β‘ 0 β€ x β§ x β€ H grav β‘ { x β² = v , v β² = β g & x β₯ 0 } AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 11 / 16
Proving Quantum the Acrophobic Bouncing Ball 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 β’ 2 gx = 2 gH β v 2 β§ x β₯ 0 2 gx = 2 gH β v 2 β§ x β₯ 0 β’ [ { x β² = v , v β² = β g & x β₯ 0 } ]( 2 gx = 2 gH β v 2 β§ x β₯ 0 ) 2 gx = 2 gH β v 2 β§ x β₯ 0 , x = 0 β’ 2 gx = 2 gH β ( β cv ) 2 β§ x β₯ 0 2 gx = 2 gH β v 2 β§ x β₯ 0 , x οΏ½ = 0 β’ 2 gx = 2 gH β v 2 β§ x β₯ 0 2 gx = 2 gH β v 2 β§ x β₯ 0 β’ 0 β€ x β§ x β€ H j ( x , v ) β‘ x β₯ 0 weaker: fails postcondition if x > H 1 j ( x , v ) β‘ 0 β€ x β§ x β€ H weak: fails ODE if v β« 0 2 j ( x , v ) β‘ x = 0 β§ v = 0 strong: fails initial condition if x > 0 3 j ( x , v ) β‘ x = 0 β¨ x = H β§ v = 0 no space for intermediate states 4 j ( x , v ) β‘ 2 gx = 2 gH β v 2 β§ x β₯ 0 works: implicitly links v and x 5 AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 11 / 16
Proving Quantum the Acrophobic Bouncing Ball 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 β’ 2 gx = 2 gH β v 2 β§ x β₯ 0 2 gx = 2 gH β v 2 β§ x β₯ 0 β’ [ { x β² = v , v β² = β g & x β₯ 0 } ]( 2 gx = 2 gH β v 2 β§ x β₯ 0 ) 2 gx = 2 gH β v 2 β§ x β₯ 0 , x = 0 β’ 2 gx = 2 gH β ( β cv ) 2 β§ x β₯ 0 2 gx = 2 gH β v 2 β§ x β₯ 0 , x οΏ½ = 0 β’ 2 gx = 2 gH β v 2 β§ x β₯ 0 2 gx = 2 gH β v 2 β§ x β₯ 0 β’ 0 β€ x β§ x β€ H j ( x , v ) β‘ x β₯ 0 weaker: fails postcondition if x > H 1 j ( x , v ) β‘ 0 β€ x β§ x β€ H weak: fails ODE if v β« 0 2 j ( x , v ) β‘ x = 0 β§ v = 0 strong: fails initial condition if x > 0 3 j ( x , v ) β‘ x = 0 β¨ x = H β§ v = 0 no space for intermediate states 4 j ( x , v ) β‘ 2 gx = 2 gH β v 2 β§ x β₯ 0 works: implicitly links v and x 5 AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 11 / 16
Proving Quantum the Acrophobic Bouncing Ball 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 β’ 2 gx = 2 gH β v 2 β§ x β₯ 0 2 gx = 2 gH β v 2 β§ x β₯ 0 β’ [ { x β² = v , v β² = β g & x β₯ 0 } ]( 2 gx = 2 gH β v 2 β§ x β₯ 0 ) οΏ½ 2 gx = 2 gH β v 2 β§ x β₯ 0 , x = 0 β’ 2 gx = 2 gH β ( β cv ) 2 β§ x β₯ 0 if c = 1 ... 2 gx = 2 gH β v 2 β§ x β₯ 0 , x οΏ½ = 0 β’ 2 gx = 2 gH β v 2 β§ x β₯ 0 2 gx = 2 gH β v 2 β§ x β₯ 0 β’ 0 β€ x β§ x β€ H j ( x , v ) β‘ x β₯ 0 weaker: fails postcondition if x > H 1 j ( x , v ) β‘ 0 β€ x β§ x β€ H weak: fails ODE if v β« 0 2 j ( x , v ) β‘ x = 0 β§ v = 0 strong: fails initial condition if x > 0 3 j ( x , v ) β‘ x = 0 β¨ x = H β§ v = 0 no space for intermediate states 4 j ( x , v ) β‘ 2 gx = 2 gH β v 2 β§ x β₯ 0 works: implicitly links v and x 5 AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 11 / 16
Proving Quantum the Acrophobic Bouncing Ball 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 β’ 2 gx = 2 gH β v 2 β§ x β₯ 0 2 gx = 2 gH β v 2 β§ x β₯ 0 β’ [ { x β² = v , v β² = β g & x β₯ 0 } ]( 2 gx = 2 gH β v 2 β§ x β₯ 0 ) οΏ½ 2 gx = 2 gH β v 2 β§ x β₯ 0 , x = 0 β’ 2 gx = 2 gH β ( β cv ) 2 β§ x β₯ 0 if c = 1 ... 2 gx = 2 gH β v 2 β§ x β₯ 0 , x οΏ½ = 0 β’ 2 gx = 2 gH β v 2 β§ x β₯ 0 2 gx = 2 gH β v 2 β§ x β₯ 0 β’ 0 β€ x β§ x β€ H j ( x , v ) β‘ x β₯ 0 weaker: fails postcondition if x > H 1 j ( x , v ) β‘ 0 β€ x β§ x β€ H weak: fails ODE if v β« 0 2 j ( x , v ) β‘ x = 0 β§ v = 0 strong: fails initial condition if x > 0 3 j ( x , v ) β‘ x = 0 β¨ x = H β§ v = 0 no space for intermediate states 4 j ( x , v ) β‘ 2 gx = 2 gH β v 2 β§ x β₯ 0 works: implicitly links v and x 5 AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 11 / 16
Proving Quantum the Acrophobic Bouncing Ball 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 β’ 2 gx = 2 gH β v 2 β§ x β₯ 0 2 gx = 2 gH β v 2 β§ x β₯ 0 β’ [ { x β² = v , v β² = β g & x β₯ 0 } ]( 2 gx = 2 gH β v 2 β§ x β₯ 0 ) οΏ½ 2 gx = 2 gH β v 2 β§ x β₯ 0 , x = 0 β’ 2 gx = 2 gH β ( β cv ) 2 β§ x β₯ 0 if c = 1 ... οΏ½ 2 gx = 2 gH β v 2 β§ x β₯ 0 , x οΏ½ = 0 β’ 2 gx = 2 gH β v 2 β§ x β₯ 0 2 gx = 2 gH β v 2 β§ x β₯ 0 β’ 0 β€ x β§ x β€ H j ( x , v ) β‘ x β₯ 0 weaker: fails postcondition if x > H 1 j ( x , v ) β‘ 0 β€ x β§ x β€ H weak: fails ODE if v β« 0 2 j ( x , v ) β‘ x = 0 β§ v = 0 strong: fails initial condition if x > 0 3 j ( x , v ) β‘ x = 0 β¨ x = H β§ v = 0 no space for intermediate states 4 j ( x , v ) β‘ 2 gx = 2 gH β v 2 β§ x β₯ 0 works: implicitly links v and x 5 AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 11 / 16
Proving Quantum the Acrophobic Bouncing Ball 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 β’ 2 gx = 2 gH β v 2 β§ x β₯ 0 2 gx = 2 gH β v 2 β§ x β₯ 0 β’ [ { x β² = v , v β² = β g & x β₯ 0 } ]( 2 gx = 2 gH β v 2 β§ x β₯ 0 ) οΏ½ 2 gx = 2 gH β v 2 β§ x β₯ 0 , x = 0 β’ 2 gx = 2 gH β ( β cv ) 2 β§ x β₯ 0 if c = 1 ... οΏ½ 2 gx = 2 gH β v 2 β§ x β₯ 0 , x οΏ½ = 0 β’ 2 gx = 2 gH β v 2 β§ x β₯ 0 2 gx = 2 gH β v 2 β§ x β₯ 0 β’ 0 β€ x β§ x β€ H j ( x , v ) β‘ x β₯ 0 weaker: fails postcondition if x > H 1 j ( x , v ) β‘ 0 β€ x β§ x β€ H weak: fails ODE if v β« 0 2 j ( x , v ) β‘ x = 0 β§ v = 0 strong: fails initial condition if x > 0 3 j ( x , v ) β‘ x = 0 β¨ x = H β§ v = 0 no space for intermediate states 4 j ( x , v ) β‘ 2 gx = 2 gH β v 2 β§ x β₯ 0 works: implicitly links v and x 5 AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 11 / 16
Proving Quantum the Acrophobic Bouncing Ball 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 β’ 2 gx = 2 gH β v 2 β§ x β₯ 0 2 gx = 2 gH β v 2 β§ x β₯ 0 β’ [ { x β² = v , v β² = β g & x β₯ 0 } ]( 2 gx = 2 gH β v 2 β§ x β₯ 0 ) οΏ½ 2 gx = 2 gH β v 2 β§ x β₯ 0 , x = 0 β’ 2 gx = 2 gH β ( β cv ) 2 β§ x β₯ 0 if c = 1 ... οΏ½ 2 gx = 2 gH β v 2 β§ x β₯ 0 , x οΏ½ = 0 β’ 2 gx = 2 gH β v 2 β§ x β₯ 0 οΏ½ 2 gx = 2 gH β v 2 β§ x β₯ 0 β’ 0 β€ x β§ x β€ H because g > 0 j ( x , v ) β‘ x β₯ 0 weaker: fails postcondition if x > H 1 j ( x , v ) β‘ 0 β€ x β§ x β€ H weak: fails ODE if v β« 0 2 j ( x , v ) β‘ x = 0 β§ v = 0 strong: fails initial condition if x > 0 3 j ( x , v ) β‘ x = 0 β¨ x = H β§ v = 0 no space for intermediate states 4 j ( x , v ) β‘ 2 gx = 2 gH β v 2 β§ x β₯ 0 works: implicitly links v and x 5 AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 11 / 16
Proving Quantum the Acrophobic Bouncing Ball 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 β’ 2 gx = 2 gH β v 2 β§ x β₯ 0 2 gx = 2 gH β v 2 β§ x β₯ 0 β’ [ { x β² = v , v β² = β g & x β₯ 0 } ]( 2 gx = 2 gH β v 2 β§ x β₯ 0 ) οΏ½ 2 gx = 2 gH β v 2 β§ x β₯ 0 , x = 0 β’ 2 gx = 2 gH β ( β cv ) 2 β§ x β₯ 0 if c = 1 ... οΏ½ 2 gx = 2 gH β v 2 β§ x β₯ 0 , x οΏ½ = 0 β’ 2 gx = 2 gH β v 2 β§ x β₯ 0 οΏ½ 2 gx = 2 gH β v 2 β§ x β₯ 0 β’ 0 β€ x β§ x β€ H because g > 0 j ( x , v ) β‘ x β₯ 0 weaker: fails postcondition if x > H 1 j ( x , v ) β‘ 0 β€ x β§ x β€ H weak: fails ODE if v β« 0 2 j ( x , v ) β‘ x = 0 β§ v = 0 strong: fails initial condition if x > 0 3 j ( x , v ) β‘ x = 0 β¨ x = H β§ v = 0 no space for intermediate states 4 j ( x , v ) β‘ 2 gx = 2 gH β v 2 β§ x β₯ 0 works: implicitly links v and x 5 AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 11 / 16
Proving Quantum the Acrophobic Bouncing Ball οΏ½ 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 β’ 2 gx = 2 gH β v 2 β§ x β₯ 0 2 gx = 2 gH β v 2 β§ x β₯ 0 β’ [ { x β² = v , v β² = β g & x β₯ 0 } ]( 2 gx = 2 gH β v 2 β§ x β₯ 0 ) οΏ½ 2 gx = 2 gH β v 2 β§ x β₯ 0 , x = 0 β’ 2 gx = 2 gH β ( β cv ) 2 β§ x β₯ 0 if c = 1 ... οΏ½ 2 gx = 2 gH β v 2 β§ x β₯ 0 , x οΏ½ = 0 β’ 2 gx = 2 gH β v 2 β§ x β₯ 0 οΏ½ 2 gx = 2 gH β v 2 β§ x β₯ 0 β’ 0 β€ x β§ x β€ H because g > 0 j ( x , v ) β‘ x β₯ 0 weaker: fails postcondition if x > H 1 j ( x , v ) β‘ 0 β€ x β§ x β€ H weak: fails ODE if v β« 0 2 j ( x , v ) β‘ x = 0 β§ v = 0 strong: fails initial condition if x > 0 3 j ( x , v ) β‘ x = 0 β¨ x = H β§ v = 0 no space for intermediate states 4 j ( x , v ) β‘ 2 gx = 2 gH β v 2 β§ x β₯ 0 works: implicitly links v and x 5 AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 11 / 16
Proving Quantum the Acrophobic Bouncing Ball οΏ½ 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 β’ 2 gx = 2 gH β v 2 β§ x β₯ 0 2 gx = 2 gH β v 2 β§ x β₯ 0 β’ [ { x β² = v , v β² = β g & x β₯ 0 } ]( 2 gx = 2 gH β v 2 β§ x β₯ 0 ) οΏ½ 2 gx = 2 gH β v 2 β§ x β₯ 0 , x = 0 β’ 2 gx = 2 gH β ( β cv ) 2 β§ x β₯ 0 if c = 1 ... οΏ½ 2 gx = 2 gH β v 2 β§ x β₯ 0 , x οΏ½ = 0 β’ 2 gx = 2 gH β v 2 β§ x β₯ 0 οΏ½ 2 gx = 2 gH β v 2 β§ x β₯ 0 β’ 0 β€ x β§ x β€ H because g > 0 j ( x , v ) β‘ x β₯ 0 weaker: fails postcondition if x > H 1 j ( x , v ) β‘ 0 β€ x β§ x β€ H weak: fails ODE if v β« 0 2 j ( x , v ) β‘ x = 0 β§ v = 0 strong: fails initial condition if x > 0 3 j ( x , v ) β‘ x = 0 β¨ x = H β§ v = 0 no space for intermediate states 4 j ( x , v ) β‘ 2 gx = 2 gH β v 2 β§ x β₯ 0 works: implicitly links v and x 5 AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 11 / 16
Proving Quantum the Acrophobic Bouncing Ball οΏ½ 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 β₯ c β₯ 0 β’ 2 gx = 2 gH β v 2 β§ x β₯ 0 j ( x , v ) β’ [ { x β² = v , v β² = β g & x β₯ 0 } ]( j ( x , v ) ) οΏ½ 2 gx = 2 gH β v 2 β§ x β₯ 0 , x = 0 β’ 2 gx = 2 gH β ( β cv ) 2 β§ x β₯ 0 if c = 1 ... οΏ½ 2 gx = 2 gH β v 2 β§ x β₯ 0 , x οΏ½ = 0 β’ 2 gx = 2 gH β v 2 β§ x β₯ 0 οΏ½ 2 gx = 2 gH β v 2 β§ x β₯ 0 β’ 0 β€ x β§ x β€ H because g > 0 j ( x , v ) β‘ x β₯ 0 weaker: fails postcondition if x > H 1 j ( x , v ) β‘ 0 β€ x β§ x β€ H weak: fails ODE if v β« 0 2 j ( x , v ) β‘ x = 0 β§ v = 0 strong: fails initial condition if x > 0 3 j ( x , v ) β‘ x = 0 β¨ x = H β§ v = 0 no space for intermediate states 4 j ( x , v ) β‘ 2 gx = 2 gH β v 2 β§ x β₯ 0 works: implicitly links v and x 5 AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 11 / 16
Proving Quantum the Acrophobic Bouncing Ball [ β² ] j ( x , v ) β’ [ x β² = v , v β² = β g & x β₯ 0 ] j ( x , v ) AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 12 / 16
Proving Quantum the Acrophobic Bouncing Ball [;] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ; v := β gt ]( x β₯ 0 β j ( x , v ) ) [ β² ] j ( x , v ) β’ [ x β² = v , v β² = β g & x β₯ 0 ] j ( x , v ) AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 12 / 16
Proving Quantum the Acrophobic Bouncing Ball [:=] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ][ v := β gt ]( x β₯ 0 β j ( x , v ) ) [;] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ; v := β gt ]( x β₯ 0 β j ( x , v ) ) [ β² ] j ( x , v ) β’ [ x β² = v , v β² = β g & x β₯ 0 ] j ( x , v ) AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 12 / 16
Proving Quantum the Acrophobic Bouncing Ball [:=] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ]( x β₯ 0 β j ( x , β gt ) ) [:=] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ][ v := β gt ]( x β₯ 0 β j ( x , v ) ) [;] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ; v := β gt ]( x β₯ 0 β j ( x , v ) ) [ β² ] j ( x , v ) β’ [ x β² = v , v β² = β g & x β₯ 0 ] j ( x , v ) AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 12 / 16
Proving Quantum the Acrophobic Bouncing Ball β R j ( x , v ) β’ β t β₯ 0 ( H β g 2 t 2 β₯ 0 β j ( H β g 2 t 2 , β gt ) ) [:=] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ]( x β₯ 0 β j ( x , β gt ) ) [:=] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ][ v := β gt ]( x β₯ 0 β j ( x , v ) ) [;] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ; v := β gt ]( x β₯ 0 β j ( x , v ) ) [ β² ] j ( x , v ) β’ [ x β² = v , v β² = β g & x β₯ 0 ] j ( x , v ) AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 12 / 16
Proving Quantum the Acrophobic Bouncing Ball β R j ( x , v ) β’ t β₯ 0 β H β g 2 t 2 β₯ 0 β j ( H β g 2 t 2 , β gt ) β R j ( x , v ) β’ β t β₯ 0 ( H β g 2 t 2 β₯ 0 β j ( H β g 2 t 2 , β gt ) ) [:=] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ]( x β₯ 0 β j ( x , β gt ) ) [:=] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ][ v := β gt ]( x β₯ 0 β j ( x , v ) ) [;] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ; v := β gt ]( x β₯ 0 β j ( x , v ) ) [ β² ] j ( x , v ) β’ [ x β² = v , v β² = β g & x β₯ 0 ] j ( x , v ) AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 12 / 16
Proving Quantum the Acrophobic Bouncing Ball j ( x , v ) , t β₯ 0 , H β g 2 t 2 β₯ 0 β’ j ( H β g 2 t 2 , β gt ) β R j ( x , v ) β’ t β₯ 0 β H β g 2 t 2 β₯ 0 β j ( H β g 2 t 2 , β gt ) β R j ( x , v ) β’ β t β₯ 0 ( H β g 2 t 2 β₯ 0 β j ( H β g 2 t 2 , β gt ) ) [:=] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ]( x β₯ 0 β j ( x , β gt ) ) [:=] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ][ v := β gt ]( x β₯ 0 β j ( x , v ) ) [;] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ; v := β gt ]( x β₯ 0 β j ( x , v ) ) [ β² ] j ( x , v ) β’ [ x β² = v , v β² = β g & x β₯ 0 ] j ( x , v ) AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 12 / 16
Proving Quantum the Acrophobic Bouncing Ball j ( x , v ) β‘ 2 gx = 2 gH β v 2 β§ x β₯ 0 2 gx = 2 gH β v 2 β§ x β₯ 0 , H β g 2 t 2 β₯ 0 β’ 2 g ( H β g 2 t 2 )= 2 gH β ( gt ) 2 β§ ( H β g 2 t 2 ) β₯ 0 j ( x , v ) , t β₯ 0 , H β g 2 t 2 β₯ 0 β’ j ( H β g 2 t 2 , β gt ) β R j ( x , v ) β’ t β₯ 0 β H β g 2 t 2 β₯ 0 β j ( H β g 2 t 2 , β gt ) β R j ( x , v ) β’ β t β₯ 0 ( H β g 2 t 2 β₯ 0 β j ( H β g 2 t 2 , β gt ) ) [:=] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ]( x β₯ 0 β j ( x , β gt ) ) [:=] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ][ v := β gt ]( x β₯ 0 β j ( x , v ) ) [;] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ; v := β gt ]( x β₯ 0 β j ( x , v ) ) [ β² ] j ( x , v ) β’ [ x β² = v , v β² = β g & x β₯ 0 ] j ( x , v ) AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 12 / 16
Proving Quantum the Acrophobic Bouncing Ball 2 gx = 2 gH β v 2 β’ 2 g ( H β g H β g 2 t 2 β₯ 0 β’ H β g 2 t 2 )= 2 gH β ( gt ) 2 2 t 2 β₯ 0 β§ R 2 gx = 2 gH β v 2 β§ x β₯ 0 , H β g 2 t 2 β₯ 0 β’ 2 g ( H β g 2 t 2 )= 2 gH β ( gt ) 2 β§ ( H β g 2 t 2 ) β₯ 0 j ( x , v ) , t β₯ 0 , H β g 2 t 2 β₯ 0 β’ j ( H β g 2 t 2 , β gt ) β R j ( x , v ) β’ t β₯ 0 β H β g 2 t 2 β₯ 0 β j ( H β g 2 t 2 , β gt ) β R j ( x , v ) β’ β t β₯ 0 ( H β g 2 t 2 β₯ 0 β j ( H β g 2 t 2 , β gt ) ) [:=] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ]( x β₯ 0 β j ( x , β gt ) ) [:=] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ][ v := β gt ]( x β₯ 0 β j ( x , v ) ) [;] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ; v := β gt ]( x β₯ 0 β j ( x , v ) ) [ β² ] j ( x , v ) β’ [ x β² = v , v β² = β g & x β₯ 0 ] j ( x , v ) AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 12 / 16
Proving Quantum the Acrophobic Bouncing Ball β R 2 gx = 2 gH β v 2 β’ 2 g ( H β g H β g 2 t 2 β₯ 0 β’ H β g 2 t 2 )= 2 gH β ( gt ) 2 2 t 2 β₯ 0 β§ R 2 gx = 2 gH β v 2 β§ x β₯ 0 , H β g 2 t 2 β₯ 0 β’ 2 g ( H β g 2 t 2 )= 2 gH β ( gt ) 2 β§ ( H β g 2 t 2 ) β₯ 0 j ( x , v ) , t β₯ 0 , H β g 2 t 2 β₯ 0 β’ j ( H β g 2 t 2 , β gt ) β R j ( x , v ) β’ t β₯ 0 β H β g 2 t 2 β₯ 0 β j ( H β g 2 t 2 , β gt ) β R j ( x , v ) β’ β t β₯ 0 ( H β g 2 t 2 β₯ 0 β j ( H β g 2 t 2 , β gt ) ) [:=] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ]( x β₯ 0 β j ( x , β gt ) ) [:=] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ][ v := β gt ]( x β₯ 0 β j ( x , v ) ) [;] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ; v := β gt ]( x β₯ 0 β j ( x , v ) ) [ β² ] j ( x , v ) β’ [ x β² = v , v β² = β g & x β₯ 0 ] j ( x , v ) AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 12 / 16
Proving Quantum the Acrophobic Bouncing Ball β β R id 2 gx = 2 gH β v 2 β’ 2 g ( H β g H β g 2 t 2 β₯ 0 β’ H β g 2 t 2 )= 2 gH β ( gt ) 2 2 t 2 β₯ 0 β§ R 2 gx = 2 gH β v 2 β§ x β₯ 0 , H β g 2 t 2 β₯ 0 β’ 2 g ( H β g 2 t 2 )= 2 gH β ( gt ) 2 β§ ( H β g 2 t 2 ) β₯ 0 j ( x , v ) , t β₯ 0 , H β g 2 t 2 β₯ 0 β’ j ( H β g 2 t 2 , β gt ) β R j ( x , v ) β’ t β₯ 0 β H β g 2 t 2 β₯ 0 β j ( H β g 2 t 2 , β gt ) β R j ( x , v ) β’ β t β₯ 0 ( H β g 2 t 2 β₯ 0 β j ( H β g 2 t 2 , β gt ) ) [:=] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ]( x β₯ 0 β j ( x , β gt ) ) [:=] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ][ v := β gt ]( x β₯ 0 β j ( x , v ) ) [;] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ; v := β gt ]( x β₯ 0 β j ( x , v ) ) [ β² ] j ( x , v ) β’ [ x β² = v , v β² = β g & x β₯ 0 ] j ( x , v ) AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 12 / 16
Proving Quantum the Acrophobic Bouncing Ball β β R id 2 gx = 2 gH β v 2 β’ 2 g ( H β g H β g 2 t 2 β₯ 0 β’ H β g 2 t 2 )= 2 gH β ( gt ) 2 2 t 2 β₯ 0 β§ R 2 gx = 2 gH β v 2 β§ x β₯ 0 , H β g 2 t 2 β₯ 0 β’ 2 g ( H β g 2 t 2 )= 2 gH β ( gt ) 2 β§ ( H β g 2 t 2 ) β₯ 0 j ( x , v ) , t β₯ 0 , H β g 2 t 2 β₯ 0 β’ j ( H β g 2 t 2 , β gt ) β R j ( x , v ) β’ t β₯ 0 β H β g 2 t 2 β₯ 0 β j ( H β g 2 t 2 , β gt ) β R j ( x , v ) β’ β t β₯ 0 ( H β g 2 t 2 β₯ 0 β j ( H β g 2 t 2 , β gt ) ) [:=] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ]( x β₯ 0 β j ( x , β gt ) ) [:=] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ][ v := β gt ]( x β₯ 0 β j ( x , v ) ) [;] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ; v := β gt ]( x β₯ 0 β j ( x , v ) ) [ β² ] j ( x , v ) β’ [ x β² = v , v β² = β g & x β₯ 0 ] j ( x , v ) Is Quantum done with his safety proof? AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 12 / 16
Proving Quantum the Acrophobic Bouncing Ball β β R id 2 gx = 2 gH β v 2 β’ 2 g ( H β g H β g 2 t 2 β₯ 0 β’ H β g 2 t 2 )= 2 gH β ( gt ) 2 2 t 2 β₯ 0 β§ R 2 gx = 2 gH β v 2 β§ x β₯ 0 , H β g 2 t 2 β₯ 0 β’ 2 g ( H β g 2 t 2 )= 2 gH β ( gt ) 2 β§ ( H β g 2 t 2 ) β₯ 0 j ( x , v ) , t β₯ 0 , H β g 2 t 2 β₯ 0 β’ j ( H β g 2 t 2 , β gt ) β R j ( x , v ) β’ t β₯ 0 β H β g 2 t 2 β₯ 0 β j ( H β g 2 t 2 , β gt ) β R j ( x , v ) β’ β t β₯ 0 ( H β g 2 t 2 β₯ 0 β j ( H β g 2 t 2 , β gt ) ) [:=] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ]( x β₯ 0 β j ( x , β gt ) ) [:=] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ][ v := β gt ]( x β₯ 0 β j ( x , v ) ) [;] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ; v := β gt ]( x β₯ 0 β j ( x , v ) ) [ β² ] j ( x , v ) β’ [ x β² = v , v β² = β g & x β₯ 0 ] j ( x , v ) Is Quantum done with his safety proof? Oh no! The solutions we sneaked into [ β² ] only solve the ODE/IVP if x = H , v = 0 which assumption j ( x , v ) canβt guarantee! AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 12 / 16
Proving Quantum the Acrophobic Bouncing Ball β β R id 2 gx = 2 gH β v 2 β’ 2 g ( H β g H β g 2 t 2 β₯ 0 β’ H β g 2 t 2 )= 2 gH β ( gt ) 2 2 t 2 β₯ 0 β§ R 2 gx = 2 gH β v 2 β§ x β₯ 0 , H β g 2 t 2 β₯ 0 β’ 2 g ( H β g 2 t 2 )= 2 gH β ( gt ) 2 β§ ( H β g 2 t 2 ) β₯ 0 j ( x , v ) , t β₯ 0 , H β g 2 t 2 β₯ 0 β’ j ( H β g 2 t 2 , β gt ) β R j ( x , v ) β’ t β₯ 0 β H β g 2 t 2 β₯ 0 β j ( H β g 2 t 2 , β gt ) β R j ( x , v ) β’ β t β₯ 0 ( H β g 2 t 2 β₯ 0 β j ( H β g 2 t 2 , β gt ) ) [:=] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ]( x β₯ 0 β j ( x , β gt ) ) [:=] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ][ v := β gt ]( x β₯ 0 β j ( x , v ) ) [;] j ( x , v ) β’ β t β₯ 0 [ x := H β g 2 t 2 ; v := β gt ]( x β₯ 0 β j ( x , v ) ) [ β² ] j ( x , v ) β’ [ x β² = v , v β² = β g & x β₯ 0 ] j ( x , v ) Is Quantum done with his safety proof? Oh no! The solutions we sneaked into [ β² ] only solve the ODE/IVP if x = H , v = 0 which assumption j ( x , v ) canβt guarantee! Todo redo proof with true solution Never use solutions without proof! AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 12 / 16
Clumsy Quantum Misplaced the Constants loop A β’ [ Ξ± β ] B ( x , v ) j ( x , v ) β‘ 2 gx = 2 gH β v 2 β§ x β₯ 0 1 p β‘ c = 1 β§ g > 0 2 AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 13 / 16
Clumsy Quantum Misplaced the Constants loop A β’ [ Ξ± β ] B ( x , v ) j ( x , v ) β‘ 2 gx = 2 gH β v 2 β§ x β₯ 0 1 p β‘ c = 1 β§ g > 0 2 J β‘ j ( x , v ) β§ p as loop invariant 3 AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 13 / 16
Clumsy Quantum Misplaced the Constants β R A β’ j ( x , v ) β§ p [] β§ R j ( x , v ) β§ p β’ B ( x , v ) j ( x , v ) β§ p β’ [ Ξ± ]( j ( x , v ) β§ p ) loop A β’ [ Ξ± β ] B ( x , v ) j ( x , v ) β‘ 2 gx = 2 gH β v 2 β§ x β₯ 0 1 p β‘ c = 1 β§ g > 0 2 J β‘ j ( x , v ) β§ p as loop invariant 3 AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 13 / 16
Clumsy Quantum Misplaced the Constants [] β§ [ Ξ± ]( P β§ Q ) β [ Ξ± ] P β§ [ Ξ± ] Q above j ( x , v ) β§ p β’ [ Ξ± ] j ( x , v ) V j ( x , v ) β§ p β’ [ Ξ± ] p β§ R j ( x , v ) β§ p β’ [ Ξ± ] j ( x , v ) β§ [ Ξ± ] p β R A β’ j ( x , v ) β§ p [] β§ R j ( x , v ) β§ p β’ B ( x , v ) j ( x , v ) β§ p β’ [ Ξ± ]( j ( x , v ) β§ p ) loop A β’ [ Ξ± β ] B ( x , v ) j ( x , v ) β‘ 2 gx = 2 gH β v 2 β§ x β₯ 0 1 p β‘ c = 1 β§ g > 0 2 J β‘ j ( x , v ) β§ p as loop invariant 3 AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 13 / 16
Clumsy Quantum Misplaced the Constants [] β§ [ Ξ± ]( P β§ Q ) β [ Ξ± ] P β§ [ Ξ± ] Q V p β [ Ξ± ] p ( FV ( p ) β© BV ( Ξ± ) = / 0 ) β above V j ( x , v ) β§ p β’ [ Ξ± ] p j ( x , v ) β§ p β’ [ Ξ± ] j ( x , v ) β§ R j ( x , v ) β§ p β’ [ Ξ± ] j ( x , v ) β§ [ Ξ± ] p β R A β’ j ( x , v ) β§ p [] β§ R j ( x , v ) β§ p β’ B ( x , v ) j ( x , v ) β§ p β’ [ Ξ± ]( j ( x , v ) β§ p ) loop A β’ [ Ξ± β ] B ( x , v ) j ( x , v ) β‘ 2 gx = 2 gH β v 2 β§ x β₯ 0 1 p β‘ c = 1 β§ g > 0 2 J β‘ j ( x , v ) β§ p as loop invariant 3 AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 13 / 16
Clumsy Quantum Misplaced the Constants [] β§ [ Ξ± ]( P β§ Q ) β [ Ξ± ] P β§ [ Ξ± ] Q V p β [ Ξ± ] p ( FV ( p ) β© BV ( Ξ± ) = / 0 ) β above V j ( x , v ) β§ p β’ [ Ξ± ] p j ( x , v ) β§ p β’ [ Ξ± ] j ( x , v ) β§ R j ( x , v ) β§ p β’ [ Ξ± ] j ( x , v ) β§ [ Ξ± ] p β β R A β’ j ( x , v ) β§ p [] β§ R j ( x , v ) β§ p β’ B ( x , v ) j ( x , v ) β§ p β’ [ Ξ± ]( j ( x , v ) β§ p ) loop A β’ [ Ξ± β ] B ( x , v ) j ( x , v ) β‘ 2 gx = 2 gH β v 2 β§ x β₯ 0 1 p β‘ c = 1 β§ g > 0 2 J β‘ j ( x , v ) β§ p as loop invariant 3 Note: constants c = 1 β§ g > 0 that never change are usually elided from J AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 13 / 16
Quantum the Provably Safe Bouncing Ball Proposition (Quantum can bounce around safely) 0 β€ x β§ x = H β§ v = 0 β§ g > 0 β§ 1 = c β { x β² = v , v β² = β g & x β₯ 0 } ;(? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 ) οΏ½ β ]( 0 β€ x β§ x β€ H ) οΏ½ [ requires ( 0 β€ x β§ x = H β§ v = 0 ) requires ( g > 0 β§ 1 = c ) ensures ( 0 β€ x β§ x β€ H ) { x β² = v , v β² = β g & x β₯ 0 } ; οΏ½ οΏ½ β @invariant ( 2 gx = 2 gH β v 2 β§ x β₯ 0 ) (? x = 0 ; v := β cv βͺ ? x οΏ½ = 0 )) Invariant Contracts Invariants play a crucial rΓ΄le in CPS design. Capture them if you can. Use @invariant () contracts in your hybrid programs. AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 14 / 16
Outline Learning Objectives 1 Induction for Loops 2 Iteration Axiom Induction Axiom Induction Rule for Loops Loop Invariants Simple Example Contextual Soundness Requirements Operationalize Invariant Construction 3 Bouncing Ball Rescuing Misplaced Constants Safe Quantum Summary 4 AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 14 / 16
Invariants The lionβs share of understanding comes from understanding what does change (variants/progress measures) and what doesnβt change (invariants). Invariants are a fundamental force of CS Variants are another fundamental force of CS AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 15 / 16
Summary: Loops, Generalizations, Splittings I [ Ξ± β ] P β P β§ [ Ξ± β ]( P β [ Ξ± ] P ) P G [ Ξ± ] P P β Q M [ Β· ] [ Ξ± ] P β [ Ξ± ] Q loop Ξ β’ J , β J β’ [ Ξ± ] J J β’ P Ξ β’ [ Ξ± β ] P , β MR Ξ β’ [ Ξ± ] Q , β Q β’ P Ξ β’ [ Ξ± ] P , β [] β§ [ Ξ± ]( P β§ Q ) β [ Ξ± ] P β§ [ Ξ± ] Q V p β [ Ξ± ] p ( FV ( p ) β© BV ( Ξ± ) = / 0 ) AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 16 / 16
Outline Appendix 5 Iteration Axiom Iterations & Splitting the Box Iteration & Generalizations AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 16 / 16
Iteration Axiom compositional semantics β compositional rules! AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 17 / 16
Loops of Proofs: Iterations [ β ] [ Ξ± β ] P β P β§ [ Ξ± ][ Ξ± β ] P A β’ [ Ξ± β ] B AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 18 / 16
Loops of Proofs: Iterations [ β ] [ Ξ± β ] P β P β§ [ Ξ± ][ Ξ± β ] P A β’ B β§ [ Ξ± ][ Ξ± β ] B [ β ] A β’ [ Ξ± β ] B AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 18 / 16
Loops of Proofs: Iterations [ β ] [ Ξ± β ] P β P β§ [ Ξ± ][ Ξ± β ] P A β’ B β§ [ Ξ± ]( B β§ [ Ξ± ][ Ξ± β ] B ) [ β ] A β’ B β§ [ Ξ± ][ Ξ± β ] B [ β ] A β’ [ Ξ± β ] B AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 18 / 16
Loops of Proofs: Iterations [ β ] [ Ξ± β ] P β P β§ [ Ξ± ][ Ξ± β ] P οΏ½ B β§ [ Ξ± ]( B β§ [ Ξ± ][ Ξ± β ] B ) οΏ½ A β’ B β§ [ Ξ± ] [ β ] A β’ B β§ [ Ξ± ]( B β§ [ Ξ± ][ Ξ± β ] B ) [ β ] A β’ B β§ [ Ξ± ][ Ξ± β ] B [ β ] A β’ [ Ξ± β ] B AndrΓ© Platzer (CMU) LFCPS/07: Control Loops & Invariants LFCPS/07 18 / 16
Recommend
More recommend
Explore More Topics
Stay informed with curated content and fresh updates.