Logical contingency analysis for domain-specific languages

US9378195B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9378195-B2
Application numberUS-201313967610-A
CountryUS
Kind codeB2
Filing dateAug 15, 2013
Priority dateAug 23, 2012
Publication dateJun 28, 2016
Grant dateJun 28, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Embodiments relate to validating logical statements in code for domain specific languages. An aspect includes parsing logical statements and annotating constraint type logical statements with specific constraint annotations from the logical grammar of the domain specific language. A non-contradiction graph is built using specific constraint annotations constrained to represent cases satisfying the logical statements and is solved to find a case that satisfies the logical statement or prove that no such case exists, thus locating a contradiction. The non-contradiction graph is negated to form a non-tautology graph constrained to represent cases violating the logical statements and the non-tautology graph is solved to find a case that violates the logical statement or prove that no such case exists, thus locating a tautology. A report is provided regarding at least one case satisfying the logical statement and at least one case violating the logical statement whereby the logical statement is validated.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for validating a set of logical statements in computer readable code for one of a plurality of domain specific languages, comprising: parsing the logical statements and annotating the logical statements with specific constraint annotations associated with the domain specific language; building a non-contradiction graph using the specific constraint annotations constrained to represent cases satisfying the logical statements; solving the non-contradiction graph to find a case that satisfies the logical statement or to prove that no such case exists thus locating a contradiction; negating the non-contradiction graph to form a non-tautology graph constrained to represent cases violating the logical statements; solving the non-tautology graph to find a case that violates the logical statement or to prove that no such case exists thus locating a tautology; and providing a report as to whether there is at least one case that satisfies the logical statement and at least one case that violates the logical statement whereby the logical statement is validated. 2. A method according to claim 1 further comprising, if a contradiction is located, identifying a minimal subset of statements that are necessary to obtain a contradiction. 3. A method according to claim 1 further comprising, if a tautology is located, identifying a minimal subset of statements that are necessary to obtain a tautology. 4. A method according to claim 1 wherein solving comprising using a general theory solver utilizing a combination of specialized solvers for the mathematical theories wherein the type of solver needed is defined by the annotations. 5. A method according to claim 4 wherein specialized solvers are one or more of: an arithmetic solver; a Boolean algebra solver; an order theory solver; a set algebra solver; and/or an equality theory solver. 6. A method according to claim 1 further comprising producing a certificate of contingency that includes a case free of contradiction and tautology, or producing a certificate of contingency that includes a case with contradiction and tautology. 7. A computer program product for validating a logical statement in computer readable code for one of a plurality of domain specific languages, the computer program product comprising: a non-transitory computer readable storage medium having program code embodied therewith, the program code executable by a processor for: parsing the logical statements and annotating the logical statements with specific constraint annotations associated with the domain specific language; building a non-contradiction graph using the specific constraint annotations constrained to represent cases satisfying the logical statements; solving the non-contradiction graph to find a case that satisfies the logical statement or to prove that no such case exists thus locating a contradiction; negating the non-contradiction graph to form a non-tautology graph constrained to represent cases violating the logical statements; solving the non-tautology graph to find a case that violates the logical statement or to prove that no such case exists thus locating a tautology; and providing a report as to whether there is at least one case that satisfies the logical statement and at least one case that violates the logical statement whereby the logical statement is validated. 8. A computer program product according to claim 7 further comprising, if a contradiction is located, identifying a minimal subset of statements that are necessary to obtain a contradiction. 9. A computer program product according to claim 7 further comprising, if a tautology is located, identifying a minimal subset of statements that are necessary to obtain a tautology. 10. A computer program product according to claim 7 wherein solving comprising using a general theory solver utilizing a combination of specialized solvers for the mathematical theories wherein the type of solver needed is defined by the annotations. 11. A computer program product according to claim 10 wherein specialized solvers are one or more of: an arithmetic solver; a Boolean algebra solver; an order theory solver; a set algebra solver; and/or an equality theory solver. 12. A computer program product according to claim 7 further comprising, producing a certificate of contingency that includes a case free of contradiction and tautology, or producing a certificate of contingency that includes a case with contradiction and tautology. 13. A method for validating a set of logical statements in computer readable code for one of a plurality of domain specific languages, comprising: parsing the logical statements and annotating the logical statements with specific constraint annotations associated with the domain specific language; building a first graph using the specific constraint annotations to represent cases satisfying the logical statements; solving the first graph to find a case that satisfies the logical statement or to prove that no such case exists thus locating a contradiction; negating, where the first graph is valid, the first graph to form a second graph to represent cases violating the logical statements; solving the second graph to find a case that violates the logical statement or to prove that no such case exists thus locating a tautology; and providing a report as to whether there is at least one case that satisfies the logical statement and at least one case that violates the logical statement whereby the logical statement is validated. 14. A method according to claim 13 further comprising, if a contradiction is located, identifying a minimal subset of statements that are necessary to obtain a contradiction. 15. A method according to claim 13 further comprising, if a tautology is located, identifying a minimal subset of statements that are necessary to obtain a tautology. 16. A method according to claim 13 further comprising, producing a certificate of contingency that includes a case free of contradiction and tautology, or producing a certificate of contingency that includes a case with contradiction and tautology.

Assignees

Inventors

Classifications

  • Computing arrangements using knowledge-based models · CPC title

  • Validation · CPC title

  • G06F8/436Primary

    Semantic checking · CPC title

  • Natural language query formulation or dialogue systems · CPC title

  • G06F8/43Primary

    Checking; Contextual analysis · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9378195B2 cover?
Embodiments relate to validating logical statements in code for domain specific languages. An aspect includes parsing logical statements and annotating constraint type logical statements with specific constraint annotations from the logical grammar of the domain specific language. A non-contradiction graph is built using specific constraint annotations constrained to represent cases satisfying …
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F8/436. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 28 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).