spacesearch a library for building and verifying solver
play

SpaceSearch: A Library for Building and Verifying Solver-Aided - PowerPoint PPT Presentation

SpaceSearch: A Library for Building and Verifying Solver-Aided Tools Konstantin Steven S. Stefan Emina Michael Zachary Weitz Lyubomirsky Heule Torlak D. Ernst Tatlock Reduction SMT Reduction SMT Reduction SpaceSearch


  1. SpaceSearch: 
 A Library for Building and Verifying Solver-Aided Tools Konstantin Steven S. 
 Stefan Emina Michael Zachary Weitz Lyubomirsky Heule Torlak D. Ernst Tatlock

  2. Reduction

  3. SMT Reduction

  4. SMT Reduction

  5. SpaceSearch Reduction SMT

  6. The Border Gateway Protocol

  7. The Border Gateway Protocol ISP ISP

  8. The Border Gateway Protocol ISP ISP ISP ISP ISP

  9. The Border Gateway Protocol ISP ISP ISP ISP ISP

  10. The Border Gateway Protocol ISP ISP ISP ISP ISP

  11. The Border Gateway Protocol configure terminal router bgp 1 ISP neighbor 8.212.226.20 remote-as 2 neighbor 172.16.254.1 remote-as 3 neighbor 95.112.23.51 remote-as 4 ISP ! prefix lists ip prefix-list outCustomer permit 0.0.0.0/0 le 32 ip prefix-list outPeer permit 8.212.226.0/24 le p prefix-list outProvider permit ISP ISP

  12. The Border Gateway Protocol configure terminal router bgp 1 ISP neighbor 8.212.226.20 remote-as 2 neighbor 172.16.254.1 remote-as 3 neighbor 95.112.23.51 remote-as 4 ISP ! prefix lists ip prefix-list outCustomer permit 0.0.0.0/0 le 32 ip prefix-list outPeer permit 8.212.226.0/24 le p prefix-list outProvider permit ISP ISP

  13. The Border Gateway Protocol configure terminal router bgp 1 ISP neighbor 8.212.226.20 remote-as 2 neighbor 172.16.254.1 remote-as 3 neighbor 95.112.23.51 remote-as 4 ISP ! prefix lists ip prefix-list outCustomer permit 0.0.0.0/0 le 32 ip prefix-list outPeer permit 8.212.226.0/24 le p prefix-list outProvider permit ISP ISP

  14. The Border Gateway Protocol configure terminal router bgp 1 ISP neighbor 8.212.226.20 remote-as 2 neighbor 172.16.254.1 remote-as 3 neighbor 95.112.23.51 remote-as 4 ISP ! prefix lists ip prefix-list outCustomer permit 0.0.0.0/0 le 32 ip prefix-list outPeer permit 8.212.226.0/24 le p prefix-list outProvider permit ISP ISP

  15. The Border Gateway Protocol configure terminal router bgp 1 ISP neighbor 8.212.226.20 remote-as 2 neighbor 172.16.254.1 remote-as 3 neighbor 95.112.23.51 remote-as 4 ISP ! prefix lists ip prefix-list outCustomer permit 0.0.0.0/0 le 32 ip prefix-list outPeer permit 8.212.226.0/24 le p prefix-list outProvider permit ISP ISP

  16. The Border Gateway Protocol configure terminal router bgp 1 ISP neighbor 8.212.226.20 remote-as 2 neighbor 172.16.254.1 remote-as 3 neighbor 95.112.23.51 remote-as 4 ISP ! prefix lists ip prefix-list outCustomer permit 0.0.0.0/0 le 32 ip prefix-list outPeer permit 8.212.226.0/24 le p prefix-list outProvider permit ISP ISP

  17. The Border Gateway Protocol ISP ISP ISP configure terminal router bgp 1 neighbor 8.212.226.20 remote-as 2 neighbor 172.16.254.1 remote-as 3 neighbor 95.112.23.51 remote-as 4 ! prefix lists ip prefix-list ISP outCustomer permit 0.0.0.0/0 le 32 ip prefix-list outPeer permit 8.212.226.0/24 le p prefix-list outProvider permit

  18. Specification Spec 
 Holds Bagpipe Bagpipe configure terminal router bgp 1 neighbor 8.212.226.20 remote-as 2 neighbor 172.16.254.1 remote-as 3 neighbor 95.112.23.51 remote-as 4 Spec 
 ! prefix lists ip prefix-list outC permit 0.0.0.0/0 le 32 ip prefix-list outPeer permit 8.212.226.0/24 le p prefix-list ou permit Violation Configuration

  19. Specification Spec 
 Holds Bagpipe Bagpipe configure terminal router bgp 1 neighbor 8.212.226.20 remote-as 2 neighbor 172.16.254.1 remote-as 3 neighbor 95.112.23.51 remote-as 4 Spec 
 ! prefix lists ip prefix-list outC permit 0.0.0.0/0 le 32 ip prefix-list outPeer permit 8.212.226.0/24 le p prefix-list ou permit Violation Configuration

  20. Bagpipe ∀ t:trace( ), check( , t) configure terminal router bgp 1 Specification Spec 
 Holds configure terminal router bgp 1 neighbor 8.212.226.20 remote-as 2 neighbor 172.16.254.1 remote-as 3 neighbor 95.112.23.51 remote-as 4 Spec 
 ! prefix lists ip prefix-list outC permit 0.0.0.0/0 le 32 ip prefix-list outPeer permit 8.212.226.0/24 le p prefix-list ou permit Violation Configuration

  21. Bagpipe ∀ t:trace( ), check( , t) configure terminal router bgp 1 ∞ Specification Spec 
 Holds configure terminal router bgp 1 neighbor 8.212.226.20 remote-as 2 neighbor 172.16.254.1 remote-as 3 neighbor 95.112.23.51 remote-as 4 Spec 
 ! prefix lists ip prefix-list outC permit 0.0.0.0/0 le 32 ip prefix-list outPeer permit 8.212.226.0/24 le p prefix-list ou permit Violation Configuration

  22. Bagpipe ∀ t:trace( ), check( , t) configure terminal router bgp 1 ∞ [OOPSLA’16] Reduce Specification fin ∀ t:initTrace( ), check( , t) Spec 
 configure terminal router bgp 1 Holds configure terminal router bgp 1 neighbor 8.212.226.20 remote-as 2 neighbor 172.16.254.1 remote-as 3 neighbor 95.112.23.51 remote-as 4 Spec 
 ! prefix lists ip prefix-list outC permit 0.0.0.0/0 le 32 ip prefix-list outPeer permit 8.212.226.0/24 le p prefix-list ou permit Violation Configuration

  23. Bagpipe ∀ t:trace( ), check( , t) configure terminal router bgp 1 ∞ [OOPSLA’16] Reduce Specification fin ∀ t:initTrace( ), check( , t) Spec 
 configure terminal router bgp 1 Holds configure terminal router bgp 1 neighbor 8.212.226.20 remote-as 2 neighbor 172.16.254.1 remote-as 3 neighbor 95.112.23.51 remote-as 4 Spec 
 ! prefix lists ip prefix-list outC permit 0.0.0.0/0 le 32 ip prefix-list outPeer permit 8.212.226.0/24 le p prefix-list ou permit Violation Configuration

  24. Bagpipe ∀ t:trace( ), check( , t) configure terminal router bgp 1 ∞ [OOPSLA’16] Reduce Specification fin ∀ t:initTrace( ), check( , t) Spec 
 configure terminal router bgp 1 Holds Reduce ? configure terminal router bgp 1 neighbor 8.212.226.20 remote-as 2 neighbor 172.16.254.1 remote-as 3 neighbor 95.112.23.51 remote-as 4 Spec 
 ! prefix lists ip prefix-list outC permit 0.0.0.0/0 le 32 ip prefix-list outPeer permit 8.212.226.0/24 le p prefix-list ou permit Violation Configuration SMT

  25. ∀ t:initTrace( ), check( , t) configure terminal router bgp 1 neighbor 8.212.226.20

  26. ∀ t:initTrace( ), check( , t) configure terminal router bgp 1 neighbor 8.212.226.20 initTrace( ) configure terminal router bgp 1

  27. ∀ t:initTrace( ), check( , t) configure terminal router bgp 1 neighbor 8.212.226.20 { t:initTrace( ) | ¬check( , t) } initTrace( ) configure terminal configure terminal router bgp 1 router bgp 1

  28. ∀ t:initTrace( ), check( , t) configure terminal router bgp 1 neighbor 8.212.226.20 { t:initTrace( ) | ¬check( , t) } initTrace( ) configure terminal configure terminal router bgp 1 router bgp 1 search( ) = None

  29. SpaceSearch Interface empty = singleton(a) = a union( , ) =

  30. SpaceSearch Interface empty = singleton(a) = a union( , ) = f(a) a a bind(S,f) = U x:S f(x) = bind( , ) = f(b) b b

  31. SpaceSearch Interface empty = search( ) = None a singleton(a) = search( ) = Some a a union( , ) = f(a) a a bind(S,f) = U x:S f(x) = bind( , ) = f(b) b b

  32. Bagpipe ∀ t:trace( ), check( , t) configure terminal router bgp 1 ∞ Reduce fin Specification ∀ t:initTrace( ), check( , t) Spec 
 configure terminal router bgp 1 Holds configure terminal router bgp 1 Spec 
 neighbor 8.212.226.20 remote-as 2 neighbor 172.16.254.1 remote-as 3 neighbor 95.112.23.51 remote-as 4 ! prefix lists ip prefix-list outC permit 0.0.0.0/0 le 32 ip prefix-list outPeer permit 8.212.226.0/24 le p prefix-list ou Violation permit Configuration

  33. Bagpipe ∀ t:trace( ), check( , t) configure terminal router bgp 1 ∞ Reduce fin Specification ∀ t:initTrace( ), check( , t) Spec 
 configure terminal router bgp 1 Holds Reduce search( 
 configure terminal router bgp 1 Spec 
 neighbor 8.212.226.20 remote-as 2 bind(initTraceSpace( ), ( λ t. neighbor 172.16.254.1 remote-as 3 neighbor 95.112.23.51 remote-as 4 configure terminal router bgp 1 ! prefix lists ip prefix-list outC permit 0.0.0.0/0 le 32 ip prefix-list outPeer permit 8.212.226.0/24 le p prefix-list ou Violation permit if check( , t) 
 Configuration then empty 
 else singleton(t))) = None

  34. Bagpipe ∀ t:trace( ), check( , t) configure terminal router bgp 1 ∞ Reduce fin Specification ∀ t:initTrace( ), check( , t) Spec 
 configure terminal router bgp 1 Holds Reduce search( 
 configure terminal router bgp 1 Spec 
 neighbor 8.212.226.20 remote-as 2 bind(initTraceSpace( ), ( λ t. neighbor 172.16.254.1 remote-as 3 neighbor 95.112.23.51 remote-as 4 configure terminal router bgp 1 ! prefix lists ip prefix-list outC permit 0.0.0.0/0 le 32 ip prefix-list outPeer permit 8.212.226.0/24 le p prefix-list ou Violation permit SMT if check( , t) 
 Configuration Extract ? then empty 
 else singleton(t))) = None

  35. Meet

  36. Meet ∀ x y. (x /\ y) ⟺ ¬(¬x \/ ¬y) De Morgan's Law

  37. Meet ∀ x y. (x /\ y) ⟺ ¬(¬x \/ ¬y) De Morgan's Law (let ((x ( symbolic-bool )) (y ( symbolic-bool )))

Recommend


More recommend