Home Prover Formalizer Analyzer Translator Contact us

AZDEGAR

provides you with easy-to-use high-performance Java API and tools for

Automated Reasoning

What is Automated Reasoning?

Reasoning is the ability to make inferences, and automated reasoning is concerned with the building of computing systems that automate this process. Although the overall goal is to mechanize different forms of reasoning, the term has largely been identified with valid deductive reasoning as practiced in mathematics and formal logic. In this respect, automated reasoning is akin to mechanical theorem proving.

–Stanford Encyclopedia of Philosophy

Automated Theorem Prover

Automated theorem proving is a subfield of automated reasoning and mathematical logic dealing with proving mathematical theorems by computer programs. Automated reasoning over mathematical proof was a major impetus for the development of computer science.

String expr = "◇(A ∧ B) ⊃ (◇A ∧ ◇B)";
LogicExprParser parser = new LogicExprParser();
Inference inference = parser.makeInference(expr);
Prover prover = Prover.createInstance(LogicSystem.PML); // Propositional Modal Logic K
boolean valid = prover.prove(inference);

// For visualization
nodes = prover.getNodes();
edges = prover.getEdges();

Try it

Formalizer

Azdegar Formalizer translates natural language sentences to symbolic logic. The logical representation of a sentence might be thought of as a structure that determines from which sentences it can be validly deduced, and which sentences can be validly deduced from it and other premises.

String text = """
    Some alligators are kept in captivity.
    Some birds are kept in captivity.
    Therefore some alligators are birds.
    """;
Formalizer formalizer = new Formalizer();
List<Formula> formulas = formalizer.formalize(text);
formulas.stream().forEach(System.out::println);

Try it

Analyzer

Azdegar sentence analyzer identifies sentence parts, structure, tense, voice, etc.

String text = "The teacher gave the class some homework yesterday.";
Parser parser = new Parser();
EnglishAnalyzer analyzer = new EnglishAnalyzer();
try {
    Map<Integer, Clause> parsed = parser.parse(text);
    parsed.forEach((key, main) -> {
        analyzer.detectTenseVoice(main);
        analyzer.detectType(main);
        Map<String, WordGroup> parts = analyzer.identifyParts(main);
        parts.forEach((k, v) -> {
            System.out.println(k + ": " + v);
        });
        if (!main.subs().isEmpty()) {
            main.subs().forEach((skey, sub) -> {
                analyzer.detectTenseVoice(sub);
                ...
            });
        }
    });
} catch (Exception ex) {
}

Translator

Azdegar English to Persian translator

Contact Us


Tehran, Iran
Email: info@azdegar.ir