Använda en interaktiv teorem bevis för att resonera om program innebär en sekvens av interaktioner där användaren utmanar theorem bevis med gissningar. Många av de gissningar som framförs är i själva verket falska, och användarna ägnar ofta stor möda åt att undersöka teoremets utdata innan de inser detta. Vi presenterar en synergistisk integrering av tester med teorem som visar, implementeras i ACL2 Sedan (ACL2s), för att automatiskt generera konkreta motexempel. Vår metod använder teoremets fulla kraft och tillhörande bibliotek för att förenkla gissningar. Denna förenkling kan omvandla gissningar för vilka det är svårt att hitta motexempel till gissningar där det är trivialt att hitta motexempel. I själva verket leder vårt tillvägagångssätt även till bättre teorem bevis, t.ex., om tester visar att en generalisering steg leder till en falsk gissning, vi tvingar theorem bevis för att backa, så att det att sträva efter mer fruktbara alternativ som kan ge ett bevis. Dokumentets fokus ligger på konstruktion av en synergistisk integrering av testning med interaktiva teorem som visar att ACL2 kan utökas med nya funktioner som vi förväntar oss är av allmänt intresse. Vi diskuterar också vår erfarenhet av att använda ACL2s för att lära förstaårsstudenter hur man resonerar om sina program.
Chamarthi m.fl. Ref föreslog senare ett mer avancerat motexempel hitta verktyg för ACL2s, som använder den fulla kraften av theorem bevis och bibliotek för att förenkla gissningar så att de är lättare att förfalska.
Integrating Testing and Interactive Theorem Proving
{'venue': 'EPTCS 70, 2011, pp. 4-19', 'journal': None, 'mag_field_of_study': ['Computer Science']}