-
Notifications
You must be signed in to change notification settings - Fork 9
/
publications.json
2043 lines (2043 loc) · 94 KB
/
publications.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
[
{
"tag": "recent",
"title": "Complete Multiparty Session Type Projection with Automata",
"abstract": "Multiparty session types (MSTs) are a type-based approach to verifying communication protocols. Central to MSTs is a projection operator: a partial function that maps protocols represented as global types to correct-by-construction implementations for each participant, represented as a communicating state machine. Existing projection operators are syntactic in nature, and trade efficiency for completeness. We present the first projection operator that is sound, complete, and efficient. Our projection separates synthesis from checking implementability. For synthesis, we use a simple automata-theoretic construction; for checking implementability, we present succinct conditions that summarize insights into the property of implementability. We use these conditions to show that MST implementability is PSPACE-complete. This improves upon a previous decision procedure that is in EXPSPACE and applies to a smaller class of MSTs. We demonstrate the effectiveness of our approach using a prototype implementation, which handles global types not supported by previous work without sacrificing performance.",
"author": [
{
"family": "Li",
"given": "Elaine"
},
{
"family": "Stutz",
"given": "Felix"
},
{
"family": "Wies",
"given": "Thomas"
},
{
"family": "Zufferey",
"given": "Damien"
}
],
"container-title": "In Proceedings of the 35th International Conference on Computer Aided Verification (CAV)",
"id": "cav23",
"issued": {
"date-parts": [
[
2023
]
]
},
"keyword": "conf",
"publisher": "Springer",
"link-paper": "https://doi.org/10.1007/978-3-031-37709-9_17",
"type": "paper-conference"
},
{
"tag": "recent",
"title": "Comparing Channel Restrictions of Communicating State Machines, High-level Message Sequence Charts, and Multiparty Session Types",
"abstract": "Communicating state machines provide a formal foundation for distributed computation. Unfortunately, they are Turing-complete and, thus, challenging to analyse. In this paper, we classify restrictions on channels which have been proposed to work around the undecidability of verification questions. We compare half-duplex communication, existential B-boundedness, and k-synchronisability. These restrictions do not prevent the communication channels from growing arbitrarily large but still restrict the power of the model. Each restriction gives rise to a set of languages so, for every pair of restrictions, we check whether one subsumes the other or if they are incomparable. We investigate their relationship in two different contexts: first, the one of communicating state machines, and, second, the one of communication protocol specifications using high-level message sequence charts. Surprisingly, these two contexts yield different conclusions. In addition, we integrate multiparty session types, another approach to specify communication protocols, into our classification. We show that multiparty session type languages are half-duplex, existentially 1-bounded, and 1-synchronisable. To show this result, we provide the first formal embedding of multiparty session types into high-level message sequence charts.",
"author": [
{
"family": "Stutz",
"given": "Felix"
},
{
"family": "Zufferey",
"given": "Damien"
}
],
"container-title": "In Proceedings of the 13th International Symposium on Games, Automata, Logics and Formal Verification (GandALF)",
"id": "gandalf22",
"issued": {
"date-parts": [
[
2022
]
]
},
"keyword": "conf",
"publisher": "Open Publishing Association",
"link-paper": "https://cgi.cse.unsw.edu.au/~eptcs/paper.cgi?GandALF2022.13.pdf",
"type": "paper-conference"
},
{
"tag": "recent",
"title": "Constraint Synthesis for Parametric CAD",
"abstract": "Parametric CAD, in conjunction with 3D-printing, is democratizing design and production pipelines. End-users can easily change parameters of publicly available designs, and 3D-print the customized objects. In research and industry, parametric designs are being used to find optimal, or unique final objects. Unfortunately, for most designs, many combinations of parameter values are invalid. Restricting the parameter space of designs to only the valid configurations is a difficult problem. Most publicly available designs do not contain this information. Using ideas from program analysis, we synthesize constraints on parameters of parametric designs. Some constraints are synthesized statically, by exploiting implicit assumptions of the design process. Several others are inferred by evaluating the design on many different samples, and then constructing and solving hypotheses. Our approach is effective at finding constraints on parameter values for a wide variety of parametric designs, with a very small runtime cost, in the order of seconds.",
"author": [
{
"family": "Mathur",
"given": "Aman"
},
{
"family": "Zufferey",
"given": "Damien"
}
],
"container-title": "Pacific Graphics Short Papers, Posters, and Work-in-Progress Papers",
"id": "pg21",
"issued": {
"date-parts": [
[
2021
]
]
},
"keyword": "conf",
"publisher": "The Eurographics Association",
"link-paper": "https://people.mpi-sws.org/~mathur/papers/ConstraintSynthesisCAD.pdf",
"type": "paper-conference"
},
{
"tag": "recent",
"title": "Generalising Projection in Asynchronous Multiparty Session Types",
"abstract": "Multiparty session types (MSTs) provide an efficient methodology for specifying and verifying message passing software systems. In the theory of MSTs, a global type specifies the interaction among the roles at the global level. A local specification for each role is generated by projecting from the global type on to the message exchanges it participates in. Whenever a global type can be projected on to each role, the composition of the projections is deadlock free and has exactly the behaviours specified by the global type. The key to the usability of MSTs is the projection operation: a more expressive projection allows more systems to be type-checked but requires a more difficult soundness argument.\nIn this paper, we generalise the standard projection operation in MSTs. This allows us to model and type-check many design patterns in distributed systems, such as load balancing, that are rejected by the standard projection. The key to the new projection is an analysis that tracks causality between messages. Our soundness proof uses novel graph-theoretic techniques from the theory of message-sequence charts. We demonstrate the efficacy of the new projection operation by showing many global types for common patterns that can be projected under our projection but not under the standard projection operation.",
"author": [
{
"family": "Majumdar",
"given": "Rupak"
},
{
"family": "Mukund",
"given": "Madhavan"
},
{
"family": "Stutz",
"given": "Felix"
},
{
"family": "Zufferey",
"given": "Damien"
}
],
"container-title": "In Proceedings of the 32nd International Conference on Concurrency Theory (CONCUR)",
"id": "concur21",
"issued": {
"date-parts": [
[
2021
]
]
},
"keyword": "conf",
"publisher": "Schloss Dagstuhl - Leibniz-Zentrum für Informatik",
"link-paper": "https://drops.dagstuhl.de/opus/volltexte/2021/14412/pdf/LIPIcs-CONCUR-2021-35.pdf",
"type": "paper-conference"
},
{
"title": "Paracosm: A Test Framework for Autonomous Driving Simulations",
"abstract": "Systematic testing of autonomous vehicles operating in complex real-world scenarios is a difficult and expensive problem. We present Paracosm, a framework for writing systematic test scenarios for autonomous driving simulations. Paracosm allows users to programmatically describe complex driving situations with specific features, e.g., road layouts and environmental conditions, as well as reactive temporal behaviors of other cars and pedestrians. A systematic exploration of the state space, both for visual features and for reactive interactions with the environment is made possible. We define a notion of test coverage for parameter configurations based on combinatorial testing and low dispersion sequences. Using fuzzing on parameter configurations, our automatic test generator can maximize coverage of various behaviors and find problematic cases. Through empirical evaluations, we demonstrate the capabilities of Paracosm in programmatically modeling parameterized test environments, and in finding problematic scenarios.",
"author": [
{
"family": "Majumdar",
"given": "Rupak"
},
{
"family": "Mathur",
"given": "Aman Shankar"
},
{
"family": "Pirron",
"given": "Marcus"
},
{
"family": "Stegner",
"given": "Laura"
},
{
"family": "Zufferey",
"given": "Damien"
}
],
"container-title": "In Proceedings of the Conference on Fundamental Approaches to Software Engineering (FASE)",
"id": "fase21",
"issued": {
"date-parts": [
[
2021
]
]
},
"keyword": "conf",
"publisher": "Springer",
"type": "paper-conference"
},
{
"title": "Multiparty Motion Coordination: From Choreographies to Robotics Programs",
"abstract": "We present a programming model and typing discipline for complex multi-robot coordination programming. Our model encompasses both synchronisation through message passing and continuous-time dynamic motion primitives in physical space. We specify continuous-time motion primitives in an assume-guarantee logic that ensures compatibility of motion primitives as well as collision freedom. We specify global behaviour of programs in a choreographic type system that extends multiparty session types with jointly executed motion primitives, predicated refinements, as well as a separating conjunction that allows reasoning about subsets of interacting robots. We describe a notion of well-formedness for global types that ensures motion and communication can be correctly synchronised and provide algorithms for checking well-formedness, projecting a type, and local type checking. A well-typed program is communication safe, motion compatible, and collision free. Our type system provides a compositional approach to ensuring these properties.\n We have implemented our model on top of the ROS framework. This allows us to program multi-robot coordination scenarios on top of commercial and custom robotics hardware platforms. We show through case studies that we can model and statically verify quite complex manoeuvres involving multiple manipulators and mobile robots—such examples are beyond the scope of previous approaches.",
"author": [
{
"family": "Majumdar",
"given": "Rupak"
},
{
"family": "Nobuko",
"given": "Yoshida"
},
{
"family": "Zufferey",
"given": "Damien"
}
],
"container-title": "Proceedings of the ACM on Programming Languages (OOPSLA)",
"id": "oopsla20a",
"issued": {
"date-parts": [
[
2020
]
]
},
"keyword": "journal",
"publisher": "ACM",
"link-paper": "files/2020_Multiparty_Motion_Coordination_From_Choreographies_to_Robotics_Programs.pdf",
"type": "paper-journal"
},
{
"title": "Programming at the Edge of Synchrony",
"abstract": "Synchronization primitives for fault-tolerant distributed systems that ensure an effective and efficient cooperation among processes are an important challenge in the programming languages community. We present a new programming abstraction, ReSync, for implementing benign and Byzantine fault-tolerant protocols. ReSync has a new round structure that offers a simple abstraction for group communication, like it is customary in synchronous systems, but also allows messages to be received one by one, like in the asynchronous systems. This extension allows implementing network and algorithm-specific policies for the message reception, which is not possible in classic round models.\n The execution of ReSync programs is based on a new generic round switch protocol that generalizes the famous theoretical result of Dwork et al. [1988]. We evaluate experimentally the performance of ReSync’s execution platform, by comparing consensus implementations in ReSync with LibPaxos3, etcd, and Bft-SMaRt, three consensus libraries tolerant to benign, resp. byzantine faults.",
"author": [
{
"family": "Drăgoi",
"given": "Cezara"
},
{
"family": "Widder",
"given": "Josef"
},
{
"family": "Zufferey",
"given": "Damien"
}
],
"container-title": "Proceedings of the ACM on Programming Languages (OOPSLA)",
"id": "oopsla20b",
"issued": {
"date-parts": [
[
2020
]
]
},
"keyword": "journal",
"publisher": "ACM",
"link-paper": "files/2020_Programming_at_the_Edge_of_Synchrony.pdf",
"type": "paper-journal"
},
{
"title": "Automated Controller and Sensor Configuration Synthesis using Dimensional Analysis",
"abstract": "Automated controller synthesis methods for cyber-physical systems (CPS) often require precise knowledge of the system’s state. Unfortunately, parts of the state may not be directly measurable, which limits the application of these methods. We present a design methodology for the co-design of software controllers and the required sensing capabilities. Our method leverages the knowledge of physical units in the model of a system to find ways of indirectly measuring parts of the system’s state which cannot be measured directly. The method contains a search procedure which uses dimensional analysis to explore the space of physically well-typed expressions and it generates as an intermediate result possible sensor combinations.The integration between the physical and software design for CPS that we present make automated controller synthesis techniques more widely applicable. We have implemented our method and applied it to the design of robotic manipulators.",
"author": [
{
"family": "Pirron",
"given": "Marcus"
},
{
"family": "Zufferey",
"given": "Damien"
},
{
"family": "Stanley-Marbell",
"given": "Phillip"
}
],
"container-title": "IEEE TCAD (EMSOFT)",
"id": "emsoft20a",
"issued": {
"date-parts": [
[
2020
]
]
},
"keyword": "journal",
"publisher": "IEEE",
"link-paper": "files/2020_Automated_Controller_and_Sensor_Configuration_Synthesis_using_Dimensional_Analysis.pdf",
"type": "paper-journal"
},
{
"title": "Assume-Guarantee Distributed Synthesis",
"abstract": "Distributed reactive synthesis is the problem of algorithmically constructing controllers of distributed, communicating systems so that each closed loop system satisfies a given temporal specification. We present an algorithm, called negotiation, for sound (but necessarily incomplete) distributed reactive synthesis based on assume-guarantee decompositions. The negotiation algorithm iteratively constructs assumptions and guarantees for each system. In each iteration, each system attempts to fulfill its specification and its guarantee (from the previous round), under the current assumption on the other systems, by solving a reactive synthesis problem. If the specificationis not realizable, the algorithm computes a sufficient assumption on the other systems that ensures it can realize the specification and guarantee. This additional assumption further constrains the behavior of other systems and they might require an additional assumption, leading to the next round in the negotiation. The process terminates when a compatible assumption-guarantee pair is found for each system, which is sufficient to also satisfy the specification of each system. We have built a tool called Agnes that implements this algorithm. Using Agnes, we empirically demonstrate the effectiveness of our proposed algorithm on two case studies.",
"author": [
{
"family": "Majumdar",
"given": "Rupak"
},
{
"family": "Mallik",
"given": "Kaushik"
},
{
"family": "Schmuck",
"given": "Anne-Kathrin"
},
{
"family": "Zufferey",
"given": "Damien"
}
],
"container-title": "IEEE TCAD (EMSOFT)",
"id": "emsoft20b",
"issued": {
"date-parts": [
[
2020
]
]
},
"keyword": "journal",
"publisher": "IEEE",
"link-paper": "files/2020_Assume-Guarantee_Distributed_Synthesis.pdf",
"type": "paper-journal"
},
{
"title": "Exploiting Errors for Efficiency: A Survey from Circuits to Applications",
"abstract": "When a computational task tolerates a relaxation of its specification or when an algorithm tolerates the effects of noise in its execution, hardware, system software, and programming language compilers or their runtime systems can trade deviations from correct behavior for lower resource usage. We present, for the first time, a synthesis of research results on computing systems that only make as many errors as their end-to-end applications can tolerate. The results span the disciplines of computer-aided design of circuits, digital system design, computer architecture, programming languages, operating systems, and information theory. Rather than over-provisioning the resources controlled by each of these layers of abstraction to avoid errors, it can be more efficient to exploit the masking of errors occurring at one layer and thereby prevent those errors from propagating to a higher layer.\n We demonstrate the potential benefits of end-to-end approaches using two illustrative examples. We introduce a formalization of terminology that allows us to present a coherent view across the techniques traditionally used by different research communities in their individual layer of focus. Using this formalization, we survey tradeoffs for individual layers of computing systems at the circuit, architecture, operating system, and programming language levels as well as fundamental information-theoretic limits to tradeoffs between resource usage and correctness.",
"author": [
{
"family": "Stanley-Marbell",
"given": "Phillip"
},
{
"family": "Alaghi",
"given": "Armin"
},
{
"family": "Carbin",
"given": "Michael"
},
{
"family": "Darulova",
"given": "Eva"
},
{
"family": "Dolecek",
"given": "Lara"
},
{
"family": "Gerstlauer",
"given": "Andreas"
},
{
"family": "Gillani",
"given": "Ghayoor A"
},
{
"family": "Jevdjic",
"given": "Djordje"
},
{
"family": "Moreau",
"given": "Thierry"
},
{
"family": "Cacciotti",
"given": "Mattia"
},
{
"family": "Daglis",
"given": "Alexandros"
},
{
"family": "Enright Jerger",
"given": "Natalie "
},
{
"family": "Falsafi",
"given": "Babak"
},
{
"family": "Misailovic",
"given": "Sasa "
},
{
"family": "Sampson",
"given": "Adrian"
},
{
"family": "Zufferey",
"given": "Damien"
}
],
"container-title": "ACM Computing Surveys",
"id": "csur20",
"issued": {
"date-parts": [
[
2020
]
]
},
"keyword": "journal",
"publisher": "ACM",
"link-paper": "files/2020_Exploiting_Errors_for_Efficiency_A_Survey_from_Circuits_to_Applications.pdf",
"type": "paper-journal"
},
{
"title": "Interactive Programming for Parametric CAD",
"abstract": "Parametric CAD enables description of a family of objects wherein each valid combination of parameter values results in a different final form. Though GUI-based CAD tools are significantly more popular, GUI operations do not carry a semantic description, and are therefore brittle with respect to changes in parameter values. Programmatic interfaces, on the other hand, are more robust due to an exact specification of how the operations are applied. However, programming is unintuitive and has a steep learning curve. In this work, we link the interactivity of GUI with the robustness of programming. Inspired by program synthesis by example, our technique synthesizes code representative of selections made by users in a GUI interface. Through experiments, we demonstrate that our technique can synthesize relevant and robust sub-programs in a reasonable amount of time. A user study reveals that our interface offers significant improvements over a programming-only interface.",
"author": [
{
"family": "Mathur",
"given": "Aman"
},
{
"family": "Pirron",
"given": "Marcus"
},
{
"family": "Zufferey",
"given": "Damien"
}
],
"container-title": "Computer Graphics Forum",
"id": "cgf20",
"issued": {
"date-parts": [
[
2020
]
]
},
"keyword": "journal",
"publisher": "John Wiley & Sons, Inc.",
"link-paper": "files/2020_Interactive_Programming_for_Parametric_CAD.pdf",
"type": "paper-journal"
},
{
"title": "Incremental Synthesis of Symbolic Controllers in a Changing Environment",
"abstract": "Abstraction-Based Controller Synthesis (ABCS) is an emerging field for automatic synthesis of correct-by-design controllers for non-linear dynamical systems in the presence of bounded disturbances. An important drawback of existing ABCS techniques is the lack of flexibility against changes in the disturbance model; any change in the model results in a complete re-computation of the abstraction and the controller. This flexibility is relevant to situations when disturbances are learnt or estimated during operation in an environment which is previously not known precisely. As time passes, the disturbance model is progressively refined. The monolithic nature and high computational cost of existing algorithms make ABCS unsuited for such scenarios.\n In this paper, we present an incremental algorithm that makes the entire ABCS work-flow dynamically adapt to local changes in the disturbance model. Only the parts of the space which are affected by the changes are updated and the rest of the abstraction is reused. We empirically show the benefit of dynamic adaptation of abstraction on two large examples: a 5-dimensional vehicle model and a 12-dimensional quadrotor model. In both cases, the speed-up over complete re-computation is significant.",
"author": [
{
"family": "Bai",
"given": "Yunjun"
},
{
"family": "Majumdar",
"given": "Rupak"
},
{
"family": "Mallik",
"given": "Kaushik"
},
{
"family": "Schmuck",
"given": "Anne-Kathrin"
},
{
"family": "Zufferey",
"given": "Damien"
}
],
"container-title": "In Proceedings of the Conference on Decision and Control (CDC)",
"id": "cdc19",
"issued": {
"date-parts": [
[
2019
]
]
},
"keyword": "conf",
"publisher": "IEEE",
"link-paper": "files/2019_Incremental_Abstraction_Computation_for_Symbolic_Controller_Synthesis_in_a_Changing_Environment.pdf",
"type": "paper-conference"
},
{
"title": "Mperl: Hardware and Software Co-design for Robotic Manipulators",
"abstract": "Building small custom robots is getting democratized thanks to affordable tools like 3D printers and microcontrollers. However, it still requires expertise from a wide range of domains: from designing the mechanical parts to writing the code that controls the robot. We present Mperl, a tool to help non-experts build custom robotic manipulators.\n Mperl starts from an abstract description of the robot’s kinematic structure which contains information about joints, actuators, and sensors. The structure is refined with an easily manufactured geometry. Furthermore, from the structure Mperl generates control code which can be used to move the robot to a target configuration. We evaluate Mperl on a range of common robotic manipulator architectures, both serial and parallel.",
"author": [
{
"family": "Pirron",
"given": "Marcus"
},
{
"family": "Zufferey",
"given": "Damien"
}
],
"container-title": "In Proceedings of the International Conference on Intelligent Robots and Systems (IROS)",
"id": "iros19",
"issued": {
"date-parts": [
[
2019
]
]
},
"keyword": "conf",
"publisher": "IEEE",
"link-paper": "files/2019_MPERL_Hardware_and_Software_Co-design_for_Robotic_Manipulators.pdf",
"type": "paper-conference"
},
{
"title": "<em>[Updated]</em> Motion Session Types for Robotic Interactions",
"abstract": "<em>Update (2020.4.8):</em> Theorem 4.9, Corollary 4.10, and Theorem 4.11 have been strengthened.\n\nRobotics applications involve programming concurrent components synchronising through messages while simultaneously executing motion primitives that control the state of the physical world. Today, these applications are typically programmed in low-level imperative programming languages which provide little support for abstraction or reasoning.\n We present a unifying programming model for concurrent message-passing systems that additionally control the evolution of physical state variables, together with a compositional reasoning framework based on multiparty session types. Our programming model combines message-passing concurrent processes with motion primitives. Processes represent autonomous components in a robotic assembly, such as a cart or a robotic arm, and they synchronise via discrete messages as well as via motion primitives. Continuous evolution of trajectories under the action of controllers is also modelled by motion primitives, which operate in global, physical time.\n We use multiparty session types as specifications to orchestrate discrete message-passing concurrency and continuous flow of trajectories. A global session type specifies the communication protocol among the components with joint motion primitives. A projection from a global type ensures that jointly executed actions at end-points are communication safe and deadlock-free, i.e., session-typed components do not get stuck. Together, these checks provide a compositional verification methodology for assemblies of robotic components with respect to concurrency invariants such as a progress property of communications as well as dynamic invariants such as absence of collision.\n We have implemented our core language and, through initial experiments, have shown how multiparty session types can be used to specify and compositionally verify robotic systems implemented on top of off-the-shelf and custom hardware using standard robotics application libraries.",
"author": [
{
"family": "Majumdar",
"given": "Rupak"
},
{
"family": "Pirron",
"given": "Marcus"
},
{
"family": "Nobuko",
"given": "Yoshida"
},
{
"family": "Zufferey",
"given": "Damien"
}
],
"container-title": "In Proceedings of 33rd European Conference on Object-Oriented Programming (ECOOP)",
"editor": [
{
"family": "Donaldson",
"given": "Alastair"
}
],
"id": "ecoop19",
"issued": {
"date-parts": [
[
2019
]
]
},
"keyword": "conf",
"publisher": "Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik",
"link-paper": "files/2019_Motion_Session_Types_for_Robotic_Interactions_updated.pdf",
"link-slides": "files/2019_Motion_Session_Types_for_Robotic_Interactions_slides.odp",
"type": "paper-conference"
},
{
"title": "PGCD: Robot Programming and Verification with Geometry, Concurrency, and Dynamics",
"abstract": "Robotics applications are typically programmed in low-level imperative programming languages, leaving the programmer to deal with dynamic controllers affecting the physical state, geometric constraints on components, and concurrency and synchronization. The combination of these features —dynamics, geometry, and concurrency— makes developing robotic applications difficult. We present PGCD, a programming model for robotics applications consisting of assemblies of robotic components, together with its runtime and a verifier. PGCD combines message-passing concurrent processes with motion primitives, which represent continuous evolution of trajectories in geometric space under the action of dynamic controllers, and explicit modeling of geometric frame shifts, which allow relative coordinate transformations between components evolving in space. We describe a verification algorithm for PGCD programs based on model checking and SMT solvers that statically verify concurrency-related properties such as absence of deadlocks and geometric invariants such as absence of collision during motion. We have implemented a runtime for PGCD programs that compiles down to imperative code on top of ROS and runs directly on robotic hardware. We illustrate the programming model and reasoning principles by building a number of statically verified robotic manipulation programs on top of 3D-printed robotic arm and cart assemblies.",
"author": [
{
"family": "Banus̆ić",
"given": "Gregor B."
},
{
"family": "Majumdar",
"given": "Rupak"
},
{
"family": "Pirron",
"given": "Marcus"
},
{
"family": "Schmuck",
"given": "Anne-Kathrin"
},
{
"family": "Zufferey",
"given": "Damien"
}
],
"container-title": "In Proceedings of the 10th International Conference on Cyber-Physical Systems (ICCPS)",
"editor": [
{
"family": "Xue",
"given": "Liu"
},
{
"family": "Tabuada",
"given": "Paulo"
}
],
"id": "iccps19",
"issued": {
"date-parts": [
[
2019
]
]
},
"keyword": "conf",
"publisher": "ACM/IEEE",
"link-paper": "files/2019_PGCD_Robot_Programming_and_Verification_with_Geometry_Concurrency_and_Dynamics.pdf",
"type": "paper-conference"
},
{
"title": "Evaluating Branching Heuristics in Interval Constraint Propagation for Satisfiability",
"abstract": "Interval Constraint Propagation (ICP) is a powerful method for solving general nonlinear constraints over real numbers. ICP uses interval arithmetic to prune the space of potential solutions and, when the constraint propagation fails, divides the space into smaller regions and continues recursively. The original goal is to find paving boxes of all solutions to a problem. Already when the whole domain needs to be considered, branching methods do matter much. However, recent applications of ICP in decision procedures over the reals need only a single solution. Consequently, variable ordering in branching operations becomes even more important.\n In this work, we compare three different branching heuristics for ICP. The first method, most commonly used, splits the problem in the dimension with the largest lower and upper bound. The two other types of branching methods try to exploit an integration of analytical/numerical properties of real functions and search-based methods. The second method, called smearing, uses gradient information of constraints to choose variables that have the highest local impact on pruning. The third method, lookahead branching, designs a measure function to compare the effect of all variables on pruning operations in the next several steps.\n We evaluate the performance of our methods on over 11,000 benchmarks from various sources. While the different branching methods exhibit significant differences on larger instance, none is consistently better. This shows the need for further research on branching heuristics when ICP is used to find an unique solution rather than all solutions.",
"author": [
{
"family": "Huang",
"given": "Calvin"
},
{
"family": "Kong",
"given": "Soonho"
},
{
"family": "Gao",
"given": "Sicun"
},
{
"family": "Zufferey",
"given": "Damien"
}
],
"container-title": "In Proceedings of the 12th International Workshop on Numerical Software Verification (NSV)",
"editor": [
{
"family": "Zamani",
"given": "Majid"
},
{
"family": "Zufferey",
"given": "Damien"
}
],
"id": "nsv19",
"issued": {
"date-parts": [
[
2019
]
]
},
"keyword": "workshop",
"publisher": "Springer",
"link-paper": "files/2019_Evaluating_Branching_Heuristics_in_Interval_Constraint_Propagation_for_Satisfiability.pdf",
"link-slides": "files/2019_Evaluating_Branching_Heuristics_in_Interval_Constraint_Propagation_for_Satisfiability_slides.odp",
"type": "paper-conference"
},
{
"title": "Tool: Accessible Automated Reasoning for Human Robot Collaboration",
"abstract": "We present an expressive, concise, and extendable domain specific language for planning of assembly systems, such as industrial human robot cooperation. Increased flexibility requirements in manufacturing processes call for more automation at the description and planning stages of manufacturing. Procedural models are good candidates to meet this demand as programs offer a high degree of flexibility and are easily composed.\nFurthermore, we aim to make our programs close to declarative specification and integrate automatic reasoning tools to help the users. The constraints come both from specific programs and preexisting knowledge base from the target domain. The case of human robot collaboration is interesting as there is a number of constraints and regulations around this domain. Unfortunately, automated reasoners are often too unpredictable and cannot be used directly by non-experts.\nIn this paper, we present our domain specific language “Tool Ontology and Optimization Language” (Tool) and describe how we integrated automated reasoners and planners in a way that makes them accessible to users which have little programming knowledge, but expertise in manufacturing domain and no previous experience with or knowledge about the underlying reasoners. We present encouraging results by applying Tool to a case study from the automotive and aerospace industry.",
"author": [
{
"family": "Gavran",
"given": "Ivan"
},
{
"family": "Mailahn",
"given": "Ortwin"
},
{
"family": "Müller",
"given": "Rainer"
},
{
"family": "Peifer",
"given": "Richard"
},
{
"family": "Zufferey",
"given": "Damien"
}
],
"container-title": "In Proceedings of Onward!",
"editor": [
{
"family": "Gabriel",
"given": "Richard P."
},
{
"family": "Gonzalez Boix",
"given": "Elisa"
}
],
"id": "onward18",
"issued": {
"date-parts": [
[
2018
]
]
},
"keyword": "conf",
"publisher": "ACM",
"link-paper": "files/2018_tool_preprint.pdf",
"link-slides": "files/2018_tool_presentation.pdf",
"type": "paper-conference"
},
{
"title": "DroidStar: Callback Typestates for Android Classes",
"abstract": "Event-driven programming frameworks, such as Android, are based on components with asynchronous interfaces. The protocols for interacting with these components can often be described by finite-state machines we dub callback typestates. Callback typestates are akin to classical typestates, with the difference that their outputs (callbacks) are produced asynchronously. While useful, these specifications are not commonly available, because writing them is difficult and error-prone.\nOur goal is to make the task of producing callback typestates significantly easier. We present a callback typestate assistant tool, DroidStar, that requires only limited user interaction to produce a callback typestate. Our approach is based on an active learning algorithm, L*. We improved the scalability of equivalence queries (a key component of L*), thus making active learning tractable on the Android system.\nWe use DroidStar to learn callback typestates for Android classes both for cases where one is already provided by the documentation, and for cases where the documentation is unclear. The results show that DroidStar learns callback typestates accurately and efficiently. Moreover, in several cases, the synthesized callback typestates uncovered surprising and undocumented behaviors.",
"author": [
{
"family": "Radhakrishna",
"given": "Arjun"
},
{
"family": "Lewchenko",
"given": "Nicholas"
},
{
"family": "Meier",
"given": "Shawn"
},
{
"family": "Mover",
"given": "Sergio"
},
{
"family": "Sripada",
"given": "Krishna Chaitanya"
},
{
"family": "Zufferey",
"given": "Damien"
},
{
"family": "Chang",
"given": "Bor-Yuh Evan"
},
{
"family": "Černý",
"given": "Pavol"
}
],
"container-title": "In Proceedings of the 40th International Conference on Software Engineering (ICSE)",
"editor": [
{
"family": "Chechik",
"given": "Marsha"
},
{
"family": "Harman",
"given": "Mark"
}
],
"id": "icse18",
"issued": {
"date-parts": [
[
2018
]
]
},
"keyword": "conf",
"publisher": "ACM",
"link-paper": "files/2018_DroidStar_Callback_Typestate_for_Android_Classes.pdf",
"type": "paper-conference"
},
{
"abstract": "When a computational task tolerates a relaxation of its specification or when an algorithm tolerates the effects of noise in its execution, hardware, programming languages, and system software can trade deviations from correct behavior for lower resource usage. We present, for the first time, a synthesis of research results on computing systems that only make as many errors as their users can tolerate, from across the disciplines of computer aided design of circuits, digital system design, computer architecture, programming languages, operating systems, and information theory. Rather than over-provisioning resources at each layer to avoid errors, it can be more efficient to exploit the masking of errors occurring at one layer which can prevent them from propagating to a higher layer. We survey tradeoffs for individual layers of computing systems from the circuit level to the operating system level and illustrate the potential benefits of end-to-end approaches using two illustrative examples. To tie together the survey, we present a consistent formalization of terminology, across the layers, which does not significantly deviate from the terminology traditionally used by research communities in their layer of focus.",
"author": [
{
"family": "Stanley-Marbell",
"given": "Phillip"
},
{
"family": "Alaghi",
"given": "Armin"
},
{
"family": "Carbin",
"given": "Michael"
},
{
"family": "Darulova",
"given": "Eva"
},
{
"family": "Dolecek",
"given": "Lara"
},
{
"family": "Gerstlauer",
"given": "Andreas"
},
{
"family": "Gillani",
"given": "Ghayoor"
},
{
"family": "Jevdjic",
"given": "Djordje"
},
{
"family": "Moreau",
"given": "Thierry"
},
{
"family": "Cacciotti",
"given": "Mattia"
},
{
"family": "Daglis",
"given": "Alexandros"
},
{
"family": "Enright Jerger",
"given": "Natalie D."
},
{
"family": "Falsafi",
"given": "Babak"
},
{
"family": "Misailovic",
"given": "Sasa"
},
{
"family": "Sampson",
"given": "Adrian"
},
{
"family": "Zufferey",
"given": "Damien"
}
],
"container-title": "under submission",
"id": "approx_comp_techrep",
"issued": {
"date-parts": [
[
2018
]
]
},
"keyword": "techrep",
"link-paper": "https://arxiv.org/pdf/1809.05859.pdf",
"number": "1809.05859",
"publisher": "arXiv",
"title": "Exploiting Errors for Efficiency: A Survey from Circuits to Algorithms",
"type": "report"
},
{
"abstract": "In event-driven programming frameworks, such as Android, the client and the framework interact using callins (framework methods that the client invokes) and callbacks (client methods that the framework invokes). The protocols for interacting with these frameworks can often be described by finite-state machines we dub <em>asynchronous typestates</em>. Asynchronous typestates are akin to classical typestates, with the key difference that their outputs (callbacks) are produced asynchronously.\nWe present an algorithm to infer asynchronous typestates for Android framework classes. It is based on the L* algorithm that uses membership and equivalence queries. We show how to implement these queries for Android classes. Membership queries are implemented using testing. Under realistic assumptions, equivalence queries can be implemented using membership queries. We provide an improved algorithm for equivalence queries that is better suited for our application than the algorithms from literature. Instead of using a bound on the size of the typestate to be learned, our algorithm uses a <em>distinguisher bound</em>. The distinguisher bound quantifies how two states in the typestate are locally different.\nWe implement our approach and evaluate it empirically. We use our tool, Starling, to learn asynchronous typestates for Android classes both for cases where one is already provided by the documentation, and for cases where the documentation is unclear. The results show that Starling learns asynchronous typestates accurately and efficiently. Additionally, in several cases, the synthesized asynchronous typestates uncovered surprising and undocumented behaviors.",
"author": [
{
"family": "Radhakrishna",
"given": "Arjun"
},
{
"family": "Lewchenko",
"given": "Nicholas"
},
{
"family": "Meier",
"given": "Shawn"
},
{
"family": "Mover",
"given": "Sergio"
},
{
"family": "Sripada",
"given": "Krishna Chaitanya"
},
{
"family": "Zufferey",
"given": "Damien"
},
{
"family": "Chang",
"given": "Bor-Yuh Evan"
},
{
"family": "Černý",
"given": "Pavol"
}
],
"id": "android_learning_techrep",
"issued": {
"date-parts": [
[
2017
]
]
},
"keyword": "techrep",
"link-paper": "https://arxiv.org/pdf/1701.07842.pdf",
"number": "1701.07842",
"publisher": "arXiv",
"title": "Learning Asynchronous Typestates for Android Classes",
"type": "report"
},
{
"abstract": "We develop algorithms for computing Craig interpolants for first-order formulas over real numbers with a wide range of nonlinear functions, including transcendental functions and differential equations. We transform proof traces from δ-complete decision procedures into interpolants that consist of Boolean combinations of linear constraints. The algorithms are guaranteed to find the interpolants between two formulas A and B whenever A ∧ B is not δ-satisfiable. At the same time, by exploiting δ-perturbations one can parameterize the algorithm to find interpolants with different positions between A and B. We show applications of the methods in control and robotic design, and hybrid system verification.",
"author": [
{
"family": "Gao",
"given": "Sicun"
},
{
"family": "Zufferey",
"given": "Damien"
}
],
"container-title": "In Proceedings of Tools and Algorithms for the Construction and Analysis of Systems (TACAS)",
"editor": [
{
"family": "Chechik",
"given": "Marsha"
},
{
"family": "Raskin",
"given": "Jean-Francois"
}
],
"id": "tacas16",
"issued": {
"date-parts": [
[
2016
]
]
},
"keyword": "conf",
"link-paper": "files/2016_Interpolants_in_Nonlinear_Theories_over_the_Reals_v2.pdf",
"link-slides": "files/2016_Interpolants_in_Nonlinear_Theories_over_the_Reals.pptx",
"publisher": "Springer",
"title": "<em>[Updated]</em> Interpolants in Nonlinear Theories over the Reals",
"type": "paper-conference"
},
{
"abstract": "Fault-tolerant distributed algorithms play an important role in many critical/high-availability applications. These algorithms are notoriously difficult to implement correctly, due to asynchronous communication and the occurrence of faults, such as the network dropping messages or computers crashing.\nWe introduce PSync, a domain specific language based on the Heard-Of model, which views asynchronous faulty systems as synchronous ones with an adversarial environment that simulates asynchrony and faults by dropping messages. We define a runtime system for PSync that efficiently executes on asynchronous networks. We formalise the relation between the runtime system and PSync in terms of observational refinement. The high-level lockstep abstraction introduced by PSync simplifies the design and implementation of fault-tolerant distributed algorithms and enables automated formal verification.\nWe have implemented an embedding of PSync in the Scala programming language with a runtime system for partially synchronous networks. We show the applicability of PSync by implementing several important fault-tolerant distributed algorithms and we compare the implementation of consensus algorithms in PSync against implementations in other languages in terms of code size, runtime efficiency, and verification.",
"author": [
{
"family": "Drăgoi",
"given": "Cezara"
},
{
"family": "Henzinger",
"given": "Thomas A."
},
{
"family": "Zufferey",
"given": "Damien"
}
],
"container-title": "In Proceedings of Principles of Programming Languages (POPL)",
"editor": [
{
"family": "Bodík",
"given": "Rastislav"
},
{
"family": "Majumdar",
"given": "Rupak"
}
],
"id": "psync",
"issued": {
"date-parts": [
[
2016
]
]
},
"keyword": "conf",
"link-paper": "files/2016_PSync_A_Partially_Synchronous_Language_for_Fault-Tolerant_Distributed_Algorithms.pdf",
"link-slides": "files/2016_PSync_A_Partially_Synchronous_Language_for_Fault-Tolerant_Distributed_Algorithms.pptx",
"link-poster": "files/2016_PSync_A_Partially_Synchronous_Language_for_Fault-Tolerant_Distributed_Algorithms-poster.pdf",
"publisher": "ACM",
"title": "PSync: A Partially Synchronous Language for Fault-tolerant Distributed Algorithms",
"title-short": "PSync",
"type": "paper-conference"
},
{
"abstract": "Fault-tolerant distributed algorithms play an important role in many critical/high-availability applications. These algorithms are notoriously difficult to implement correctly, due to asynchronous communication and the occurrence of faults, such as the network dropping messages or computers crashing. Nonetheless there is surprisingly little language and verification support to build distributed systems based on fault-tolerant algorithms. In this paper, we present some of the challenges that a designer has to overcome to implement a fault-tolerant distributed system. Then we review different models that have been proposed to reason about distributed algorithms and sketch how such a model can form the basis for a domain-specific programming language. Adopting a high-level programming model can simplify the programmer’s life and make the code amenable to automated verification, while still compiling to efficiently executable code. We conclude by summarizing the current status of an ongoing language design and implementation project that is based on this idea.",
"author": [
{
"family": "Drăgoi",
"given": "Cezara"
},
{
"family": "Henzinger",
"given": "Thomas A."
},
{
"family": "Zufferey",
"given": "Damien"
}
],
"collection-title": "LIPIcs",
"container-title": "In Proceedings of Summit on Advances in Programming Languages (SNAPL)",
"editor": [
{
"family": "Ball",
"given": "Thomas"
},
{
"family": "Bodík",
"given": "Rastislav"
},
{
"family": "Krishnamurthi",
"given": "Shriram"
},
{
"family": "Lerner",
"given": "Benjamin S."
},
{
"family": "Morrisett",
"given": "Greg"
}
],
"id": "snapl15",
"issued": {
"date-parts": [
[
2015
]
]
},
"keyword": "conf",
"link-paper": "files/2015_the_need_for_language_support_for_fault-tolerant_distributed_systems.pdf",
"link-slides": "files/2015_the_need_for_language_support_for_fault-tolerant_distributed_systems.pptx",
"publisher": "Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik",
"title": "The Need for Language Support for Fault-tolerant Distributed Systems",
"type": "paper-conference",
"volume": "32"
},
{
"abstract": "Separation logic (SL) is a widely used formalism for verifying heap manipulating programs. Existing SL solvers focus on decidable fragments for list-like structures. More complex data structures such as trees are typically unsupported in implementations, or handled by incomplete heuristics. While complete decision procedures for reasoning about trees have been proposed, these procedures suffer from high complexity, or make global assumptions about the heap that contradict the separation logic philosophy of local reasoning. In this paper, we present a fragment of classical first-order logic for local reasoning about tree-like data structures. The logic is decidable in NP and the decision procedure allows for combinations with other decidable first-order theories for reasoning about data. Such extensions are essential for proving functional correctness properties. We have implemented our decision procedure and, building on earlier work on translating SL proof obligations into classical logic, integrated it into an SL-based verification tool. We successfully used the tool to verify functional correctness of tree-based data structure implementations.",
"author": [
{