{"id":"https://openalex.org/W1876576321","doi":"https://doi.org/10.5075/epfl-thesis-5581","title":"Programming with Specifications","display_name":"Programming with Specifications","publication_year":2012,"publication_date":"2012-01-01","ids":{"openalex":"https://openalex.org/W1876576321","doi":"https://doi.org/10.5075/epfl-thesis-5581","mag":"1876576321"},"language":"en","primary_location":{"id":"pmh:oai:infoscience.tind.io:182684","is_oa":true,"landing_page_url":"https://infoscience.epfl.ch/handle/20.500.14299/87277","pdf_url":"http://infoscience.epfl.ch/record/182684","source":{"id":"https://openalex.org/S4306400487","display_name":"Infoscience (Ecole Polytechnique F\u00e9d\u00e9rale de Lausanne)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"doctoral thesis"},"type":"article","indexed_in":["datacite"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"http://infoscience.epfl.ch/record/182684","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5085041656","display_name":"Philippe Suter","orcid":null},"institutions":[],"countries":[],"is_corresponding":true,"raw_author_name":"Suter, Philippe Paul Henri","raw_affiliation_strings":[],"affiliations":[]}],"institutions":[],"countries_distinct_count":0,"institutions_distinct_count":1,"corresponding_author_ids":["https://openalex.org/A5085041656"],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":null,"has_fulltext":false,"cited_by_count":12,"citation_normalized_percentile":null,"cited_by_percentile_year":null,"biblio":{"volume":null,"issue":null,"first_page":null,"last_page":null},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9995999932289124,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9995999932289124,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T11450","display_name":"Model-Driven Software Engineering Techniques","score":0.9995999932289124,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10142","display_name":"Formal Methods in Verification","score":0.9994999766349792,"subfield":{"id":"https://openalex.org/subfields/1703","display_name":"Computational Theory and Mathematics"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.639115571975708},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.6163783073425293},{"id":"https://openalex.org/keywords/software-engineering","display_name":"Software engineering","score":0.5592296123504639},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.48674917221069336},{"id":"https://openalex.org/keywords/constraint-programming","display_name":"Constraint programming","score":0.46474000811576843},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.22259217500686646}],"concepts":[{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.639115571975708},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.6163783073425293},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.5592296123504639},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.48674917221069336},{"id":"https://openalex.org/C173404611","wikidata":"https://www.wikidata.org/wiki/Q528588","display_name":"Constraint programming","level":3,"score":0.46474000811576843},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.22259217500686646},{"id":"https://openalex.org/C137631369","wikidata":"https://www.wikidata.org/wiki/Q7617831","display_name":"Stochastic programming","level":2,"score":0.0},{"id":"https://openalex.org/C105795698","wikidata":"https://www.wikidata.org/wiki/Q12483","display_name":"Statistics","level":1,"score":0.0}],"mesh":[],"locations_count":4,"locations":[{"id":"pmh:oai:infoscience.tind.io:182684","is_oa":true,"landing_page_url":"https://infoscience.epfl.ch/handle/20.500.14299/87277","pdf_url":"http://infoscience.epfl.ch/record/182684","source":{"id":"https://openalex.org/S4306400487","display_name":"Infoscience (Ecole Polytechnique F\u00e9d\u00e9rale de Lausanne)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"doctoral thesis"},{"id":"pmh:oai:infoscience.epfl.ch:182684","is_oa":true,"landing_page_url":"http://infoscience.epfl.ch/record/182684","pdf_url":null,"source":{"id":"https://openalex.org/S4306400487","display_name":"Infoscience (Ecole Polytechnique F\u00e9d\u00e9rale de Lausanne)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"Text"},{"id":"doi:10.5075/epfl-thesis-5581","is_oa":true,"landing_page_url":"https://doi.org/10.5075/epfl-thesis-5581","pdf_url":null,"source":{"id":"https://openalex.org/S4306400488","display_name":"Infoscience (Ecole Polytechnique F\u00e9d\u00e9rale de Lausanne)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":null,"raw_source_name":null,"raw_type":"thesis"},{"id":"mag:1876576321","is_oa":false,"landing_page_url":"https://infoscience.epfl.ch/record/182684","pdf_url":null,"source":null,"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":null,"raw_source_name":null,"raw_type":null}],"best_oa_location":{"id":"pmh:oai:infoscience.tind.io:182684","is_oa":true,"landing_page_url":"https://infoscience.epfl.ch/handle/20.500.14299/87277","pdf_url":"http://infoscience.epfl.ch/record/182684","source":{"id":"https://openalex.org/S4306400487","display_name":"Infoscience (Ecole Polytechnique F\u00e9d\u00e9rale de Lausanne)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"doctoral thesis"},"sustainable_development_goals":[{"id":"https://metadata.un.org/sdg/16","display_name":"Peace, Justice and strong institutions","score":0.7599999904632568}],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W1876576321.pdf"},"referenced_works_count":164,"referenced_works":["https://openalex.org/W59103672","https://openalex.org/W100631053","https://openalex.org/W121177627","https://openalex.org/W122118143","https://openalex.org/W148145328","https://openalex.org/W1480909796","https://openalex.org/W1489527380","https://openalex.org/W1491554327","https://openalex.org/W1491609820","https://openalex.org/W1493089824","https://openalex.org/W1497884533","https://openalex.org/W1502368951","https://openalex.org/W1507902915","https://openalex.org/W1508641834","https://openalex.org/W1511526676","https://openalex.org/W1511826042","https://openalex.org/W1519503479","https://openalex.org/W1521232193","https://openalex.org/W1525527210","https://openalex.org/W1525684574","https://openalex.org/W1525860943","https://openalex.org/W1529441891","https://openalex.org/W1531408435","https://openalex.org/W1537084112","https://openalex.org/W1540595797","https://openalex.org/W1541825597","https://openalex.org/W1545681762","https://openalex.org/W1549008998","https://openalex.org/W1549774509","https://openalex.org/W1552647623","https://openalex.org/W1553603549","https://openalex.org/W1556189547","https://openalex.org/W1556480840","https://openalex.org/W1556604985","https://openalex.org/W1558797637","https://openalex.org/W1559402073","https://openalex.org/W1566438397","https://openalex.org/W1567479568","https://openalex.org/W1568039151","https://openalex.org/W1571337480","https://openalex.org/W1572073643","https://openalex.org/W1572470107","https://openalex.org/W1573267491","https://openalex.org/W1576449101","https://openalex.org/W1577404745","https://openalex.org/W1578967579","https://openalex.org/W1586871530","https://openalex.org/W1592963626","https://openalex.org/W1593469353","https://openalex.org/W1595209293","https://openalex.org/W1598103905","https://openalex.org/W1598380601","https://openalex.org/W1598835948","https://openalex.org/W1607550340","https://openalex.org/W1608714802","https://openalex.org/W1613706077","https://openalex.org/W1705806753","https://openalex.org/W1727725625","https://openalex.org/W1731421159","https://openalex.org/W1747570770","https://openalex.org/W1767788337","https://openalex.org/W1871671368","https://openalex.org/W1923535011","https://openalex.org/W1951815472","https://openalex.org/W1964566177","https://openalex.org/W1964783683","https://openalex.org/W1970945363","https://openalex.org/W1972999341","https://openalex.org/W1977279860","https://openalex.org/W1979619055","https://openalex.org/W1982395839","https://openalex.org/W1985072883","https://openalex.org/W1988441831","https://openalex.org/W1990050510","https://openalex.org/W1993370765","https://openalex.org/W1994090338","https://openalex.org/W1996302019","https://openalex.org/W1998838326","https://openalex.org/W2012436850","https://openalex.org/W2021473914","https://openalex.org/W2022137742","https://openalex.org/W2028685566","https://openalex.org/W2029214188","https://openalex.org/W2037237472","https://openalex.org/W2038471956","https://openalex.org/W2040073555","https://openalex.org/W2041756731","https://openalex.org/W2043100293","https://openalex.org/W2045255985","https://openalex.org/W2048051309","https://openalex.org/W2056554620","https://openalex.org/W2060440626","https://openalex.org/W2066070747","https://openalex.org/W2066210260","https://openalex.org/W2067145567","https://openalex.org/W2080911793","https://openalex.org/W2082963442","https://openalex.org/W2085158159","https://openalex.org/W2096307462","https://openalex.org/W2096967940","https://openalex.org/W2097959001","https://openalex.org/W2098010463","https://openalex.org/W2098321852","https://openalex.org/W2100738443","https://openalex.org/W2101085206","https://openalex.org/W2101432564","https://openalex.org/W2102847589","https://openalex.org/W2103328616","https://openalex.org/W2103658959","https://openalex.org/W2105045857","https://openalex.org/W2105315191","https://openalex.org/W2107596222","https://openalex.org/W2108792311","https://openalex.org/W2109155527","https://openalex.org/W2110780548","https://openalex.org/W2111543139","https://openalex.org/W2113352466","https://openalex.org/W2115134174","https://openalex.org/W2115261880","https://openalex.org/W2117402063","https://openalex.org/W2118155805","https://openalex.org/W2118424088","https://openalex.org/W2119717320","https://openalex.org/W2123396057","https://openalex.org/W2123828382","https://openalex.org/W2123995178","https://openalex.org/W2124704329","https://openalex.org/W2127844749","https://openalex.org/W2129256695","https://openalex.org/W2129538349","https://openalex.org/W2129884521","https://openalex.org/W2130175237","https://openalex.org/W2130413583","https://openalex.org/W2132210624","https://openalex.org/W2134829074","https://openalex.org/W2135322712","https://openalex.org/W2137475629","https://openalex.org/W2138164781","https://openalex.org/W2139401046","https://openalex.org/W2140191215","https://openalex.org/W2143331802","https://openalex.org/W2146110773","https://openalex.org/W2147543351","https://openalex.org/W2147650421","https://openalex.org/W2147832077","https://openalex.org/W2149236697","https://openalex.org/W2152922041","https://openalex.org/W2153131284","https://openalex.org/W2159875930","https://openalex.org/W2159891390","https://openalex.org/W2162120832","https://openalex.org/W2162315884","https://openalex.org/W2162960800","https://openalex.org/W2164778826","https://openalex.org/W2165247635","https://openalex.org/W2168617729","https://openalex.org/W2171313158","https://openalex.org/W2181289644","https://openalex.org/W2188013097","https://openalex.org/W2278706878","https://openalex.org/W2293033107","https://openalex.org/W2296725671","https://openalex.org/W2312760909","https://openalex.org/W2523220559"],"related_works":["https://openalex.org/W100631053","https://openalex.org/W1480909796","https://openalex.org/W2149236697","https://openalex.org/W2162315884","https://openalex.org/W2091385303","https://openalex.org/W2012436850","https://openalex.org/W1525527210","https://openalex.org/W2157976942","https://openalex.org/W2115261880","https://openalex.org/W2105315191","https://openalex.org/W2091723900","https://openalex.org/W2080911793","https://openalex.org/W1990050510","https://openalex.org/W1566438397","https://openalex.org/W2118155805","https://openalex.org/W2115134174","https://openalex.org/W2101432564","https://openalex.org/W2037237472","https://openalex.org/W202802469","https://openalex.org/W1597068544"],"abstract_inverted_index":{"This":[0,320],"thesis":[1],"explores":[2],"the":[3,8,29,51,60,168,176,207,225,326,333],"use":[4,18],"of":[5,10,31,53,63,74,90,97,102,229,243,267,291,322,329,335],"specifications":[6,252,315],"for":[7,28,71,127,167,192],"construction":[9],"correct":[11],"programs.":[12,194],"We":[13,120,181,223,247],"go":[14],"beyond":[15],"their":[16,137],"standard":[17],"as":[19,95,256,282],"run-time":[20],"assertions,":[21],"and":[22,26,38,57,116,134,166,205,227,279],"present":[23,67,122,263],"algorithms,":[24],"techniques":[25,309],"implementations":[27],"tasks":[30],"1)":[32],"program":[33,251,314],"verification,":[34],"2)":[35],"declarative":[36,295,330],"programming":[37,259,296,304,331],"3)":[39],"software":[40,323],"synthesis.":[41],"These":[42],"results":[43],"are":[44],"made":[45],"possible":[46],"by":[47],"our":[48,158,183],"advances":[49],"in":[50,83,143,163],"domains":[52],"decision":[54,125],"procedure":[55,126],"design":[56],"implementation.":[58],"In":[59],"first":[61,169],"part":[62],"this":[64,84],"thesis,":[65],"we":[66,235,262,307],"a":[68,72,98,103,107,123,128,144,189,257],"decidability":[69],"result":[70],"class":[73,85],"logics":[75],"that":[76,211,219],"support":[77],"user-defined":[78],"recursive":[79,91,202],"function":[80,203],"definitions.":[81],"Constraints":[82],"can":[86,112,196,253,297],"encode":[87],"expressive":[88],"properties":[89,242],"data":[92,244,287],"structures,":[93],"such":[94],"sortedness":[96],"list,":[99],"or":[100,337],"balancing":[101],"search":[104],"tree.":[105],"As":[106],"result,":[108],"complex":[109],"verification":[110],"conditions":[111],"be":[113,254,298],"stated":[114],"concisely":[115],"solved":[117],"entirely":[118],"automatically.":[119],"also":[121],"new":[124],"logic":[129],"to":[130,146,151,155,217,238,276,310],"reason":[131,197],"about":[132,173,198],"sets":[133],"constraints":[135,199,281],"over":[136],"cardinalities.":[138],"The":[139],"key":[140],"insight":[141],"lies":[142],"technique":[145],"decompose":[147],"con-":[148],"straints":[149],"according":[150],"mutual":[152],"dependencies.":[153],"Compared":[154],"previous":[156],"techniques,":[157],"algorithm":[159],"brings":[160],"significant":[161],"improvements":[162],"running":[164],"times,":[165],"time":[170],"integrates":[171],"reasoning":[172],"cardinalities":[174],"within":[175],"popular":[177],"DPLL(T":[178],")":[179],"setting.":[180],"integrated":[182],"algorithmic":[184],"ad-":[185],"vances":[186],"into":[187,300,316],"Leon,":[188],"static":[190],"analyzer":[191],"functional":[193,338],"Leon":[195,230],"involving":[200],"arbitrary":[201],"definitions,":[204],"has":[206],"desirable":[208],"theoretical":[209],"property":[210],"it":[212,237],"will":[213],"always":[214],"find":[215],"counter-examples":[216],"assertions":[218],"do":[220],"not":[221],"hold.":[222],"illustrate":[224,249],"flexibility":[226],"efficiency":[228,334],"through":[231],"experimental":[232],"evaluation,":[233],"where":[234],"used":[236,255],"prove":[239],"detailed":[240],"correctness":[241,327],"structure":[245],"implementations.":[246],"then":[248],"how":[250,294],"high-level":[258],"construct":[260],";":[261],"Kaplan,":[264],"an":[265,301],"extension":[266],"Scala":[268],"with":[269,332],"first-class":[270],"logical":[271],"constraints.":[272],"Kaplan":[273,292],"allows":[274],"programmers":[275],"create,":[277],"manipulate":[278],"combine":[280],"they":[283],"would":[284],"any":[285],"other":[286],"structure.":[288],"Our":[289],"implementation":[290],"illustrates":[293],"incorporated":[299],"existing":[302],"mainstream":[303],"language.":[305],"Moreover,":[306],"examine":[308],"transform,":[311],"at":[312],"compile-time,":[313],"efficient":[317],"executable":[318],"code.":[319],"approach":[321],"synthesis":[324],"combines":[325],"benefits":[328],"imperative":[336],"programming.":[339]},"counts_by_year":[{"year":2016,"cited_by_count":2},{"year":2015,"cited_by_count":4},{"year":2014,"cited_by_count":2},{"year":2013,"cited_by_count":4}],"updated_date":"2025-11-06T06:51:31.235846","created_date":"2025-10-10T00:00:00"}
