Abstrakt. Dokumentet beskriver förfiningsalgoritmen för analys av (Co)Induktiva konstruktioner (CIC) som implementerats i den interaktiva teoremtestaren Matita. Förfiningsalgoritmen är ansvarig för att ge en betydelse åt termer, typer och bevis termer direkt skrivna av användaren eller genereras genom att använda taktik, beslutsförfaranden eller allmän automation. Termerna är skrivna i en "extern syntax" avsedd att vara användarvänlig som tillåter utelämnande av information, otypade bindemedel och en viss liberal användning av användardefinierad undertypning. Raffinören ändrar villkoren för att få relaterade välskrivna termer i den interna syntax som förstås av kärnan i ITP. I synnerhet fungerar det som en typ inference algoritm när alla bindemedel är otypade. Den föreslagna algoritmen är dubbelriktad: med tanke på en term i extern syntax och en typ som förväntas för termen, sprider den så mycket skrivande information som möjligt mot bladen av termen. Traditionella envägsalgoritmer går i stället vidare nedifrån och upp genom att dra slutsatsen om typen av en delterm och jämföra den med den typ som förväntas av dess sammanhang endast i slutet. Vi föreslår några nya dubbelriktade regler för CIC som är särskilt effektiva. Bland fördelarna med dubbelriktad rapportering har vi bättre felrapportering och bättre slutsatser om beroende typer. Dessutom, tack vare dubbelriktadhet, tvångssystem för sub-typning är mer effektivt och typ inference genererar enklare enande problem som är mer sannolikt att lösas av den inneboende ofullständig högre ordning enande algoritmer som genomförs. Slutligen inför vi i den externa syntaxen begreppet vektor för platshållare som gör det möjligt att omedelbart utelämna ett godtyckligt antal argument. Vektorer av platshållare tillåter ett trivialt genomförande av implicita argument och avsevärt förenkla genomförandet av primitiva och enkla taktik.
Ett anmärkningsvärt exempel är arbetet av REF med att beskriva en algoritm för tvåvägsutveckling för analys av (Co)Induktiva konstruktioner (CCIC) som genomförs i Matita.
A Bi-Directional Refinement Algorithm for the Calculus of (Co)Inductive Constructions
{'venue': 'LMCS 8 (1:18) 2012', 'journal': None, 'mag_field_of_study': ['Computer Science']}