När logikprogrammering baseras på den bevismässiga teorin om intuitionslogik, är det naturligt att tillåta implikationer i mål och i klausulernas kroppar. Försök att bevisa ett mål för formulär D G från sammanhanget (uppsättning formler)? leder till ett försök att bevisa målet G i det utvidgade sammanhanget? FDg. Således under bottom-up söka efter en cut-free bevis sammanhang, representeras som vänster sida av intuitionistiska sekvenser, växa som stackar. Även om en sådan intuitionistisk kontextuppfattning ger eleganta speciationer av många beräkningar, kan sammanhang göras mer uttrycksfulla och exibla om de är baserade på linjär logik. Efter att ha presenterat två likvärdiga formuleringar av ett fragment av linjär logik, visar vi att fragmentet har en målinriktad tolkning, vilket delvis motiverar att kalla det ett logiskt programmeringsspråk. Logikprogram baserade på den intuitionistiska teorin om ärftliga Harrop-formler kan modulärt inbäddas i denna linjära logikinställning. Programmering exempel tagna från teorem bevis, naturlig språktolkning, och databas programmering presenteras: varje exempel kräver en linjär, snarare än intuitionistisk, uppfattning om sammanhang för att modelleras på ett lämpligt sätt. En tolk för denna logik programmeringsspråk måste ta itu med problemet med att dela sammanhang; det vill säga när man försöker bevisa en multiplikativ samverkan (tensor), säger G 1 G 2, från sammanhanget, den senare måste delas i separata sammanhang 1 och 2 för vilka G 1 följer från 1 och G 2 följer från 2. Eftersom det finns ett exponentiellt antal sådana uppdelningar, är det viktigt att fördröja valet av en uppdelning så mycket som möjligt. En mekanism för lat delning av sammanhang presenteras baserat på visning bevissökning som en process som tar ett sammanhang, konsumerar en del av det, och returnerar resten (att konsumeras någon annanstans). Dessutom använder vi samlingar av Kripke tolkningar indexerade av en pendlande monoid för att tillhandahålla modeller för detta logiska programmeringsspråk och visa att logiska program medger en kanonisk modell.
Lolli, ett programmeringsspråk baserat på ett fragment av intuitionistisk linjär logik REF, bevisar mål genom att latily hantera kontexten av linjära resurser under bakåtkedjande bevissökning.
Logic Programming in a Fragment of Intuitionistic Linear Logic
{'venue': 'Inf. Comput.', 'journal': None, 'mag_field_of_study': ['Mathematics', 'Computer Science']}