Lune

ICSE2023顶会

Which of My Assumptions are Unnecessary for Realizability and Why Should I Care?

Rafi Shalom, Shahar Maoz

2023年份
6被引次数

摘要

Specifications for reactive systems synthesis consist of assumptions and guarantees. However, some specifications may include unnecessary assumptions, i.e., assumptions that are not necessary for realizability. While the controllers that are synthesized from such specifications are correct, they are also inflexible and fragile; their executions will satisfy the specification's guarantees in only very specific environments.

In this work we show how to detect unnecessary assumptions, and to transform any realizable specification into a corresponding realizable core specification, one that includes the same guarantees but no unnecessary assumptions. We do this by computing an assumptions core, a locally minimal subset of assumptions that suffices for realizability. Controllers that are synthesized from a core specification are not only correct but, importantly, more general; their executions will satisfy the specification's guarantees in more environments.

We implemented our ideas in the Spectra synthesis environment, and evaluated their impact over different benchmarks from the literature. The evaluation provides evidence for the motivation and significance of our work, by showing (1) that unnecessary assumptions are highly prevalent, (2) that in almost all cases the fully-automated removal of unnecessary assumptions pays off in total synthesis time, and (3) that core specifications induce more general controllers whose reachable state space is larger but whose representation more memory efficient. Listing 2 SPECIFICATION: ROBOT EVADING MOVING OBSTACLE (CONT., ASSUMPTIONS AND GUARANTEES) 34 // The obstacle is initially docking 35 asm initiallyObstacleAtLowerRightCorner: 36 ini obsDock; 37 38 // The obstacle must not go forever without maintenance 39 asm obstacleMustDockInfinitelyOften: 40 alwEv obsDock; 41 42 // The obstacle is initially not waiting 43 asm initiallyObsWaitFalse: 44 ini !obsWait; 45 46 // The obstacle waits every other turn 47 asm obstacleWaitSwitches: 48 alw (obsWait->next(!obsWait))&(!obsWait->next(obsWait)); 49 50 // A waiting obstacle does not move 51 asm obstacleDoesNotMoveWhenObsWait: 52 alw obsWait->(next(obsX)=obsX & next(obsY)=obsY); 53 54 // The obstacle can move only one step in each direction 55 asm obstacleMovesAtMostOne: 56 alw moveObs(obsX) & moveObs(obsY); 57 58 // The robot is initially at top left corner 59 gar initiallyRobotAtTopLeftCorner: 60 ini robAt(1,1); 61 62 // The robot can move only one step in each direction 63 gar robotMovesAtMostOne: 64 alw moveRob(robX) & moveRob(robY); 65 66 // Robot never occupies obstacles's next position 67 gar robotAvoidsObstacle: 68 alw obsNotAt(robX,robY, next(obsX),next(obsY)); 69 70 // Robot never occupies obstacle cells 71 gar robotNotOnObstacle: 72 alw obsNotAt(robX, robY, obsX, obsY);

问问这篇 Paper

智能体会读完全文。

Lune 把这篇 Paper 索引到了最后一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。

可以从这些问题问起

智能体调用

Luneget_paper_fulltext

在 Lune 里问

免费开始,无需绑卡

lune papers fulltext a388008e-7ee7-4fb6-8c7f-0932a86a99c5

它引用的顶会 Paper3

相关 Paper

黄昏的海面,两侧是细线勾勒的悬崖