@fmfi-uk-1-ain-412/structure-explorer 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +54 -0
- package/dist/App.d.ts +2 -0
- package/dist/AppComponent.d.ts +18 -0
- package/dist/__tests__/Formula.test.d.ts +1 -0
- package/dist/app/hooks.d.ts +4 -0
- package/dist/app/store.d.ts +16 -0
- package/dist/components_helper/ChoiceBubble.d.ts +8 -0
- package/dist/components_helper/ErrorFeedback.d.ts +7 -0
- package/dist/components_helper/InputGroupTitle.d.ts +14 -0
- package/dist/components_helper/MessageBubble.d.ts +13 -0
- package/dist/components_helper/SelectBubble.d.ts +10 -0
- package/dist/components_helper/TooltipButton.d.ts +6 -0
- package/dist/features/formulas/FormulaCard.d.ts +1 -0
- package/dist/features/formulas/FormulaComponent.d.ts +7 -0
- package/dist/features/formulas/formulasSlice.d.ts +12373 -0
- package/dist/features/game/GameComponent.d.ts +8 -0
- package/dist/features/game/GameControls.d.ts +5 -0
- package/dist/features/game/GameHistory.d.ts +5 -0
- package/dist/features/import/importThunk.d.ts +2 -0
- package/dist/features/language/LanguageComponent.d.ts +1 -0
- package/dist/features/language/languageSlice.d.ts +588 -0
- package/dist/features/structure/InterpretationInput.d.ts +14 -0
- package/dist/features/structure/StructureComponent.d.ts +1 -0
- package/dist/features/structure/structureSlice.d.ts +886 -0
- package/dist/features/variables/VariablesComponent.d.ts +1 -0
- package/dist/features/variables/variablesSlice.d.ts +719 -0
- package/dist/index.d.ts +1 -0
- package/dist/logicContext.d.ts +27 -0
- package/dist/main.d.ts +6 -0
- package/dist/model/Expression.d.ts +8 -0
- package/dist/model/Language.d.ts +32 -0
- package/dist/model/Structure.d.ts +19 -0
- package/dist/model/formula/Formula.Conjunction.d.ts +30 -0
- package/dist/model/formula/Formula.Disjunction.d.ts +30 -0
- package/dist/model/formula/Formula.EqualityAtom.d.ts +36 -0
- package/dist/model/formula/Formula.Equivalence.d.ts +35 -0
- package/dist/model/formula/Formula.ExistentialQuant.d.ts +29 -0
- package/dist/model/formula/Formula.Implication.d.ts +35 -0
- package/dist/model/formula/Formula.Negation.d.ts +35 -0
- package/dist/model/formula/Formula.PredicateAtom.d.ts +37 -0
- package/dist/model/formula/Formula.UniversalQuant.d.ts +29 -0
- package/dist/model/formula/Formula.d.ts +37 -0
- package/dist/model/formula/QuantifiedFormula.d.ts +18 -0
- package/dist/model/term/Term.Constant.d.ts +32 -0
- package/dist/model/term/Term.FunctionTerm.d.ts +34 -0
- package/dist/model/term/Term.Variable.d.ts +33 -0
- package/dist/model/term/Term.d.ts +15 -0
- package/dist/structure-explorer.css +5 -0
- package/dist/structure-explorer.es.js +25155 -0
- package/dist/structure-explorer.umd.js +920 -0
- package/dist/vite.svg +1 -0
- package/package.json +55 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './AppComponent';
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { SymbolWithArity } from '@fmfi-uk-1-ain-412/js-fol-parser';
|
|
3
|
+
export interface Formula {
|
|
4
|
+
name: string;
|
|
5
|
+
formula: string;
|
|
6
|
+
}
|
|
7
|
+
export interface LogicContext {
|
|
8
|
+
constants: Array<string>;
|
|
9
|
+
predicates: Array<SymbolWithArity>;
|
|
10
|
+
functions: Array<SymbolWithArity>;
|
|
11
|
+
formulas: Array<Formula>;
|
|
12
|
+
axioms: Array<Formula>;
|
|
13
|
+
theorems: Array<Formula>;
|
|
14
|
+
getFormula: (name: string) => {
|
|
15
|
+
type: string;
|
|
16
|
+
formula: string;
|
|
17
|
+
} | undefined;
|
|
18
|
+
}
|
|
19
|
+
export interface CellContext extends LogicContext {
|
|
20
|
+
isConstant: (symbol: string) => boolean;
|
|
21
|
+
isPredicate: (symbol: string) => boolean;
|
|
22
|
+
isFunction: (symbol: string) => boolean;
|
|
23
|
+
isVariable: (symbol: string) => boolean;
|
|
24
|
+
symbolExits: (symbol: string) => boolean;
|
|
25
|
+
symbolArity: (symbol: string) => number | undefined;
|
|
26
|
+
}
|
|
27
|
+
export declare const LogicContext: React.Context<CellContext | undefined>;
|
package/dist/main.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Symbol } from './Language';
|
|
2
|
+
import { DomainElement, Structure } from './Structure';
|
|
3
|
+
declare abstract class Expression {
|
|
4
|
+
abstract toString(): string;
|
|
5
|
+
abstract eval(structure: Structure, e: Map<Symbol, DomainElement>): DomainElement | boolean;
|
|
6
|
+
abstract getVariables(): Set<Symbol>;
|
|
7
|
+
}
|
|
8
|
+
export default Expression;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Language as ParserLanguage } from '@fmfi-uk-1-ain-412/js-fol-parser';
|
|
2
|
+
import { default as Term } from './term/Term';
|
|
3
|
+
export type Symbol = string;
|
|
4
|
+
export declare class Language {
|
|
5
|
+
constants: Set<Symbol>;
|
|
6
|
+
predicates: Map<Symbol, number>;
|
|
7
|
+
functions: Map<Symbol, number>;
|
|
8
|
+
constructor(constants: Set<Symbol>, predicates: Map<Symbol, number>, functions: Map<Symbol, number>);
|
|
9
|
+
/**
|
|
10
|
+
*
|
|
11
|
+
* These functions are temporarly here until the grammar changes
|
|
12
|
+
*
|
|
13
|
+
*
|
|
14
|
+
*/
|
|
15
|
+
getParserLanguage(): ParserLanguage;
|
|
16
|
+
checkFunctionArity(symbol: string, args: Term[], ee: {
|
|
17
|
+
expected: (arg0: string) => void;
|
|
18
|
+
}): void;
|
|
19
|
+
checkPredicateArity(symbol: string, args: Term[], ee: {
|
|
20
|
+
expected: (arg0: string) => void;
|
|
21
|
+
}): void;
|
|
22
|
+
hasConstant(constantName: string): boolean;
|
|
23
|
+
hasPredicate(predicateName: string): boolean;
|
|
24
|
+
hasFunction(functionName: string): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Return arity of the predicate
|
|
27
|
+
* @param {string} predicateName
|
|
28
|
+
* @return {int} arity of the predicate
|
|
29
|
+
*/
|
|
30
|
+
getPredicate(predicateName: string): number;
|
|
31
|
+
}
|
|
32
|
+
export default Language;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Symbol, Language } from './Language';
|
|
2
|
+
export type DomainElement = string;
|
|
3
|
+
export type Valuation = Map<Symbol, DomainElement>;
|
|
4
|
+
export declare class Structure {
|
|
5
|
+
language: Language;
|
|
6
|
+
domain: Set<DomainElement>;
|
|
7
|
+
iC: Map<Symbol, DomainElement>;
|
|
8
|
+
iP: Map<Symbol, Set<DomainElement[]>>;
|
|
9
|
+
iF: Map<Symbol, Map<DomainElement[], DomainElement>>;
|
|
10
|
+
/**
|
|
11
|
+
*
|
|
12
|
+
* @param {Language} language
|
|
13
|
+
*/
|
|
14
|
+
constructor(language: Language, domain: Set<DomainElement>, iC: Map<Symbol, DomainElement>, iP: Map<Symbol, Set<DomainElement[]>>, iF: Map<Symbol, Map<DomainElement[], DomainElement>>);
|
|
15
|
+
iPHas(symbol: Symbol, tuple: DomainElement[]): boolean;
|
|
16
|
+
iFHas(symbol: Symbol, tuple: DomainElement[]): boolean;
|
|
17
|
+
iFGet(symbol: Symbol, tuple: DomainElement[]): DomainElement | undefined;
|
|
18
|
+
}
|
|
19
|
+
export default Structure;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { default as Structure, Valuation } from '../Structure';
|
|
2
|
+
import { default as Formula, SignedFormula, SignedFormulaType } from './Formula';
|
|
3
|
+
/**
|
|
4
|
+
* Represent conjunction
|
|
5
|
+
* @author Milan Cifra
|
|
6
|
+
* @author Jozef Filip
|
|
7
|
+
* @class
|
|
8
|
+
* @extends Formula
|
|
9
|
+
*/
|
|
10
|
+
declare class Conjunction extends Formula {
|
|
11
|
+
subLeft: Formula;
|
|
12
|
+
subRight: Formula;
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
* @param {Formula} subLeft
|
|
16
|
+
* @param {Formula} subRight
|
|
17
|
+
*/
|
|
18
|
+
constructor(subLeft: Formula, subRight: Formula);
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
* @param {Structure} structure
|
|
22
|
+
* @param {Map} e variables valuation
|
|
23
|
+
* @return {boolean}
|
|
24
|
+
*/
|
|
25
|
+
eval(structure: Structure, e: Valuation): boolean;
|
|
26
|
+
getSubFormulas(): Formula[];
|
|
27
|
+
getSignedType(sign: boolean): SignedFormulaType;
|
|
28
|
+
getSignedSubFormulas(sign: boolean): SignedFormula[];
|
|
29
|
+
}
|
|
30
|
+
export default Conjunction;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { default as Formula, SignedFormula, SignedFormulaType } from './Formula';
|
|
2
|
+
import { default as Structure, Valuation } from '../Structure';
|
|
3
|
+
/**
|
|
4
|
+
* Represent disjunction
|
|
5
|
+
* @author Milan Cifra
|
|
6
|
+
* @author Jozef Filip
|
|
7
|
+
* @class
|
|
8
|
+
* @extends Formula
|
|
9
|
+
*/
|
|
10
|
+
declare class Disjunction extends Formula {
|
|
11
|
+
subLeft: Formula;
|
|
12
|
+
subRight: Formula;
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
* @param {Formula} subLeft
|
|
16
|
+
* @param {Formula} subRight
|
|
17
|
+
*/
|
|
18
|
+
constructor(subLeft: Formula, subRight: Formula);
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
* @param {Structure} structure
|
|
22
|
+
* @param {Map} e
|
|
23
|
+
* @return {boolean}
|
|
24
|
+
*/
|
|
25
|
+
eval(structure: Structure, e: Valuation): boolean;
|
|
26
|
+
getSubFormulas(): Formula[];
|
|
27
|
+
getSignedType(sign: boolean): SignedFormulaType;
|
|
28
|
+
getSignedSubFormulas(sign: boolean): SignedFormula[];
|
|
29
|
+
}
|
|
30
|
+
export default Disjunction;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { default as Structure, Valuation } from '../Structure';
|
|
2
|
+
import { default as Term } from '../term/Term';
|
|
3
|
+
import { default as Formula, SignedFormula, SignedFormulaType } from './Formula';
|
|
4
|
+
/**
|
|
5
|
+
* Represent equality symbol
|
|
6
|
+
* @author Milan Cifra
|
|
7
|
+
* @author Jozef Filip
|
|
8
|
+
* @class
|
|
9
|
+
* @extends Formula
|
|
10
|
+
*/
|
|
11
|
+
declare class EqualityAtom extends Formula {
|
|
12
|
+
subLeft: Term;
|
|
13
|
+
subRight: Term;
|
|
14
|
+
/**
|
|
15
|
+
*
|
|
16
|
+
* @param {Term} subLeft
|
|
17
|
+
* @param {Term} subRight
|
|
18
|
+
*/
|
|
19
|
+
constructor(subLeft: Term, subRight: Term);
|
|
20
|
+
/**
|
|
21
|
+
*
|
|
22
|
+
* @param {Structure} structure
|
|
23
|
+
* @param {Map} e
|
|
24
|
+
* @return {boolean}
|
|
25
|
+
*/
|
|
26
|
+
eval(structure: Structure, e: Valuation): boolean;
|
|
27
|
+
/**
|
|
28
|
+
*
|
|
29
|
+
* @returns {string}
|
|
30
|
+
*/
|
|
31
|
+
toString(): string;
|
|
32
|
+
getSubFormulas(): never[];
|
|
33
|
+
getSignedType(_sign: boolean): SignedFormulaType;
|
|
34
|
+
getSignedSubFormulas(_sign: boolean): SignedFormula[];
|
|
35
|
+
}
|
|
36
|
+
export default EqualityAtom;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { default as Structure, Valuation } from '../Structure';
|
|
2
|
+
import { default as Formula, SignedFormula, SignedFormulaType } from './Formula';
|
|
3
|
+
/**
|
|
4
|
+
* Represent equality symbol
|
|
5
|
+
* @author Richard Toth
|
|
6
|
+
* @author Jozef Filip
|
|
7
|
+
* @class
|
|
8
|
+
* @extends Formula
|
|
9
|
+
*/
|
|
10
|
+
declare class Equivalence extends Formula {
|
|
11
|
+
subLeft: Formula;
|
|
12
|
+
subRight: Formula;
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
* @param {Formula} subLeft
|
|
16
|
+
* @param {Formula} subRight
|
|
17
|
+
*/
|
|
18
|
+
constructor(subLeft: Formula, subRight: Formula);
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
* @param {Structure} structure
|
|
22
|
+
* @param {Map} e
|
|
23
|
+
* @return {boolean}
|
|
24
|
+
*/
|
|
25
|
+
eval(structure: Structure, e: Valuation): boolean;
|
|
26
|
+
/**
|
|
27
|
+
*
|
|
28
|
+
* @returns {string}
|
|
29
|
+
*/
|
|
30
|
+
toString(): string;
|
|
31
|
+
getSubFormulas(): Formula[];
|
|
32
|
+
getSignedType(sign: boolean): SignedFormulaType;
|
|
33
|
+
getSignedSubFormulas(sign: boolean): SignedFormula[];
|
|
34
|
+
}
|
|
35
|
+
export default Equivalence;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { default as Structure, Valuation } from '../Structure';
|
|
2
|
+
import { default as Formula, SignedFormulaType } from './Formula';
|
|
3
|
+
import { default as QuantifiedFormula } from './QuantifiedFormula';
|
|
4
|
+
/**
|
|
5
|
+
* Represent existential quantificator
|
|
6
|
+
* @author Milan Cifra
|
|
7
|
+
* @author Jozef Filip
|
|
8
|
+
* @class
|
|
9
|
+
* @extends Formula
|
|
10
|
+
*/
|
|
11
|
+
declare class ExistentialQuant extends QuantifiedFormula {
|
|
12
|
+
variableName: string;
|
|
13
|
+
subFormula: Formula;
|
|
14
|
+
/**
|
|
15
|
+
*
|
|
16
|
+
* @param {string} variableName
|
|
17
|
+
* @param {Formula} subFormula
|
|
18
|
+
*/
|
|
19
|
+
constructor(variableName: string, subFormula: Formula);
|
|
20
|
+
/**
|
|
21
|
+
*
|
|
22
|
+
* @param {Structure} structure
|
|
23
|
+
* @param {Map} e
|
|
24
|
+
* @return {boolean}
|
|
25
|
+
*/
|
|
26
|
+
eval(structure: Structure, e: Valuation): boolean;
|
|
27
|
+
getSignedType(sign: boolean): SignedFormulaType;
|
|
28
|
+
}
|
|
29
|
+
export default ExistentialQuant;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { default as Structure, Valuation } from '../Structure';
|
|
2
|
+
import { default as Formula, SignedFormula, SignedFormulaType } from './Formula';
|
|
3
|
+
/**
|
|
4
|
+
* Represent implication
|
|
5
|
+
* @author Milan Cifra
|
|
6
|
+
* @author Jozef Filip
|
|
7
|
+
* @class
|
|
8
|
+
* @extends Formula
|
|
9
|
+
*/
|
|
10
|
+
declare class Implication extends Formula {
|
|
11
|
+
subLeft: Formula;
|
|
12
|
+
subRight: Formula;
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
* @param {Formula} subLeft
|
|
16
|
+
* @param {Formula} subRight
|
|
17
|
+
*/
|
|
18
|
+
constructor(subLeft: Formula, subRight: Formula);
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
* @param {Structure} structure
|
|
22
|
+
* @param {Map} e
|
|
23
|
+
* @return {boolean}
|
|
24
|
+
*/
|
|
25
|
+
eval(structure: Structure, e: Valuation): boolean;
|
|
26
|
+
/**
|
|
27
|
+
*
|
|
28
|
+
* @returns {string}
|
|
29
|
+
*/
|
|
30
|
+
toString(): string;
|
|
31
|
+
getSubFormulas(): Formula[];
|
|
32
|
+
getSignedType(sign: boolean): SignedFormulaType;
|
|
33
|
+
getSignedSubFormulas(sign: boolean): SignedFormula[];
|
|
34
|
+
}
|
|
35
|
+
export default Implication;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { default as Structure, Valuation } from '../Structure';
|
|
2
|
+
import { Symbol } from '../Language';
|
|
3
|
+
import { default as Formula, SignedFormula, SignedFormulaType } from './Formula';
|
|
4
|
+
/**
|
|
5
|
+
* Represent negation
|
|
6
|
+
* @author Milan Cifra
|
|
7
|
+
* @author Jozef Filip
|
|
8
|
+
* @class
|
|
9
|
+
* @extends Formula
|
|
10
|
+
*/
|
|
11
|
+
declare class Negation extends Formula {
|
|
12
|
+
subFormula: Formula;
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
* @param {Formula} subFormula
|
|
16
|
+
*/
|
|
17
|
+
constructor(subFormula: Formula);
|
|
18
|
+
/**
|
|
19
|
+
*
|
|
20
|
+
* @param {Structure} structure
|
|
21
|
+
* @param {Map} e
|
|
22
|
+
* @return {boolean}
|
|
23
|
+
*/
|
|
24
|
+
eval(structure: Structure, e: Valuation): boolean;
|
|
25
|
+
/**
|
|
26
|
+
*
|
|
27
|
+
* @returns {string}
|
|
28
|
+
*/
|
|
29
|
+
toString(): string;
|
|
30
|
+
getSubFormulas(): Formula[];
|
|
31
|
+
getVariables(): Set<Symbol>;
|
|
32
|
+
getSignedType(_: boolean): SignedFormulaType;
|
|
33
|
+
getSignedSubFormulas(sign: boolean): SignedFormula[];
|
|
34
|
+
}
|
|
35
|
+
export default Negation;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { default as Formula, SignedFormula, SignedFormulaType } from './Formula';
|
|
2
|
+
import { default as Term } from '../term/Term';
|
|
3
|
+
import { default as Structure, Valuation } from '../Structure';
|
|
4
|
+
/**
|
|
5
|
+
* Represent predicate symbol
|
|
6
|
+
* @author Milan Cifra
|
|
7
|
+
* @author Jozef Filip
|
|
8
|
+
* @class
|
|
9
|
+
* @extends Formula
|
|
10
|
+
*/
|
|
11
|
+
declare class PredicateAtom extends Formula {
|
|
12
|
+
name: string;
|
|
13
|
+
terms: Term[];
|
|
14
|
+
/**
|
|
15
|
+
*
|
|
16
|
+
* @param {string} name
|
|
17
|
+
* @param {Term[]} terms
|
|
18
|
+
*/
|
|
19
|
+
constructor(name: string, terms?: Term[]);
|
|
20
|
+
depth(): number;
|
|
21
|
+
/**
|
|
22
|
+
*
|
|
23
|
+
* @param {Structure} structure
|
|
24
|
+
* @param {Map} e
|
|
25
|
+
* @return {boolean}
|
|
26
|
+
*/
|
|
27
|
+
eval(structure: Structure, e: Valuation): boolean;
|
|
28
|
+
/**
|
|
29
|
+
*
|
|
30
|
+
* @returns {string}
|
|
31
|
+
*/
|
|
32
|
+
toString(): string;
|
|
33
|
+
getSubFormulas(): Formula[];
|
|
34
|
+
getSignedType(_: boolean): SignedFormulaType;
|
|
35
|
+
getSignedSubFormulas(_: boolean): SignedFormula[];
|
|
36
|
+
}
|
|
37
|
+
export default PredicateAtom;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { default as Structure, Valuation } from '../Structure';
|
|
2
|
+
import { default as Formula, SignedFormulaType } from './Formula';
|
|
3
|
+
import { default as QuantifiedFormula } from './QuantifiedFormula';
|
|
4
|
+
/**
|
|
5
|
+
* Represent universal quantificator
|
|
6
|
+
* @author Milan Cifra
|
|
7
|
+
* @author Jozef Filip
|
|
8
|
+
* @class
|
|
9
|
+
* @extends Formula
|
|
10
|
+
*/
|
|
11
|
+
declare class UniversalQuant extends QuantifiedFormula {
|
|
12
|
+
variableName: string;
|
|
13
|
+
subFormula: Formula;
|
|
14
|
+
/**
|
|
15
|
+
*
|
|
16
|
+
* @param {string} variableName
|
|
17
|
+
* @param {Formula} subFormula
|
|
18
|
+
*/
|
|
19
|
+
constructor(variableName: string, subFormula: Formula);
|
|
20
|
+
/**
|
|
21
|
+
*
|
|
22
|
+
* @param {Structure} structure
|
|
23
|
+
* @param {Map} e
|
|
24
|
+
* @return {boolean}
|
|
25
|
+
*/
|
|
26
|
+
eval(structure: Structure, e: Valuation): boolean;
|
|
27
|
+
getSignedType(sign: boolean): SignedFormulaType;
|
|
28
|
+
}
|
|
29
|
+
export default UniversalQuant;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { default as Expression } from '../Expression';
|
|
2
|
+
import { Symbol } from '../Language';
|
|
3
|
+
import { Structure, Valuation } from '../Structure';
|
|
4
|
+
export declare enum SignedFormulaType {
|
|
5
|
+
ALPHA = "alpha",
|
|
6
|
+
BETA = "beta",
|
|
7
|
+
GAMMA = "gamma",
|
|
8
|
+
DELTA = "delta"
|
|
9
|
+
}
|
|
10
|
+
export type SignedFormula = {
|
|
11
|
+
sign: boolean;
|
|
12
|
+
formula: Formula;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Represent simple formula
|
|
16
|
+
* @author Milan Cifra
|
|
17
|
+
* @author Jozef Filip
|
|
18
|
+
* @class
|
|
19
|
+
* @abstract
|
|
20
|
+
* @extends Expression
|
|
21
|
+
*/
|
|
22
|
+
declare abstract class Formula extends Expression {
|
|
23
|
+
protected subFormulas: Formula[];
|
|
24
|
+
protected connective: string;
|
|
25
|
+
constructor(subFormulas: Formula[], connective: string);
|
|
26
|
+
getSubFormulas(): Formula[];
|
|
27
|
+
toString(): string;
|
|
28
|
+
gameDepth(sign: boolean): number;
|
|
29
|
+
signedFormulaToString(sign: boolean): string;
|
|
30
|
+
depth(): number;
|
|
31
|
+
winningSubformulas(sign: boolean, structure: Structure, e: Valuation): SignedFormula[];
|
|
32
|
+
abstract eval(structure: Structure, e: Valuation): boolean;
|
|
33
|
+
getVariables(): Set<Symbol>;
|
|
34
|
+
abstract getSignedType(sign: boolean): SignedFormulaType;
|
|
35
|
+
abstract getSignedSubFormulas(sign: boolean): SignedFormula[];
|
|
36
|
+
}
|
|
37
|
+
export default Formula;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { default as Structure, DomainElement, Valuation } from '../Structure';
|
|
2
|
+
import { default as Formula, SignedFormula, SignedFormulaType } from './Formula';
|
|
3
|
+
import { Symbol } from '../Language';
|
|
4
|
+
declare abstract class QuantifiedFormula extends Formula {
|
|
5
|
+
variableName: string;
|
|
6
|
+
subFormula: Formula;
|
|
7
|
+
connective: string;
|
|
8
|
+
constructor(variableName: string, subFormula: Formula, connective: string);
|
|
9
|
+
abstract eval(structure: Structure, e: Valuation): boolean;
|
|
10
|
+
abstract getSignedType(sign: boolean): SignedFormulaType;
|
|
11
|
+
getSignedSubFormulas(sign: boolean): SignedFormula[];
|
|
12
|
+
toString(): string;
|
|
13
|
+
getVariableName(): string;
|
|
14
|
+
winningElements(sign: boolean, structure: Structure, e: Valuation): DomainElement[];
|
|
15
|
+
getVariables(): Set<Symbol>;
|
|
16
|
+
getSubFormulas(): Formula[];
|
|
17
|
+
}
|
|
18
|
+
export default QuantifiedFormula;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { default as Structure, DomainElement, Valuation } from '../Structure';
|
|
2
|
+
import { Symbol } from '../Language';
|
|
3
|
+
import { default as Term } from './Term';
|
|
4
|
+
/**
|
|
5
|
+
* Constant
|
|
6
|
+
* @author Milan Cifra
|
|
7
|
+
* @author Jozef Filip
|
|
8
|
+
* @class
|
|
9
|
+
* @extends Term
|
|
10
|
+
*/
|
|
11
|
+
declare class Constant extends Term {
|
|
12
|
+
name: string;
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
* @param {string} name Name of the constant
|
|
16
|
+
*/
|
|
17
|
+
constructor(name: string);
|
|
18
|
+
/**
|
|
19
|
+
* Return intepretation of the constant
|
|
20
|
+
* @param {Structure} structure Structure
|
|
21
|
+
* @param {Map} e variables valuation
|
|
22
|
+
* @return {string} domain item
|
|
23
|
+
*/
|
|
24
|
+
eval(structure: Structure, _: Valuation): DomainElement;
|
|
25
|
+
/**
|
|
26
|
+
* Return string representation of constant
|
|
27
|
+
* @returns {string}
|
|
28
|
+
*/
|
|
29
|
+
toString(): string;
|
|
30
|
+
getVariables(): Set<Symbol>;
|
|
31
|
+
}
|
|
32
|
+
export default Constant;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { default as Structure, DomainElement, Valuation } from '../Structure';
|
|
2
|
+
import { Symbol } from '../Language';
|
|
3
|
+
import { default as Term } from './Term';
|
|
4
|
+
/**
|
|
5
|
+
* Represent function term
|
|
6
|
+
* @author Milan Cifra
|
|
7
|
+
* @author Jozef Filip
|
|
8
|
+
* @class
|
|
9
|
+
* @extends Term
|
|
10
|
+
*/
|
|
11
|
+
declare class FunctionTerm extends Term {
|
|
12
|
+
name: string;
|
|
13
|
+
terms: Term[];
|
|
14
|
+
/**
|
|
15
|
+
*
|
|
16
|
+
* @param {string} name name of the function
|
|
17
|
+
* @param {Term[]} terms parameters of function
|
|
18
|
+
*/
|
|
19
|
+
constructor(name: string, terms: Term[]);
|
|
20
|
+
/**
|
|
21
|
+
* Return intepretation of function.
|
|
22
|
+
* @param {Structure} structure
|
|
23
|
+
* @param {Map} e variables valuation
|
|
24
|
+
* @returns {string} domain item
|
|
25
|
+
*/
|
|
26
|
+
eval(structure: Structure, e: Valuation): DomainElement;
|
|
27
|
+
/**
|
|
28
|
+
* Return string representation of function term
|
|
29
|
+
* @returns {string}
|
|
30
|
+
*/
|
|
31
|
+
toString(): string;
|
|
32
|
+
getVariables(): Set<Symbol>;
|
|
33
|
+
}
|
|
34
|
+
export default FunctionTerm;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Symbol } from '../Language';
|
|
2
|
+
import { Structure, Valuation, DomainElement } from '../Structure';
|
|
3
|
+
import { default as Term } from './Term';
|
|
4
|
+
/**
|
|
5
|
+
* Variable
|
|
6
|
+
* @author Milan Cifra
|
|
7
|
+
* @author Jozef Filip
|
|
8
|
+
* @class
|
|
9
|
+
* @extends Term
|
|
10
|
+
*/
|
|
11
|
+
declare class Variable extends Term {
|
|
12
|
+
name: Symbol;
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
* @param {string} name
|
|
16
|
+
*/
|
|
17
|
+
constructor(name: Symbol);
|
|
18
|
+
/**
|
|
19
|
+
* Return intepretation of variable.
|
|
20
|
+
* @param {Structure} structure
|
|
21
|
+
* @param {Map} e variables valuation
|
|
22
|
+
* @return {DomainElement} domain item
|
|
23
|
+
*/
|
|
24
|
+
eval(_: Structure, e: Valuation): DomainElement;
|
|
25
|
+
/**
|
|
26
|
+
* Return string representation of variable
|
|
27
|
+
* @returns {DomainElement}
|
|
28
|
+
*/
|
|
29
|
+
toString(): DomainElement;
|
|
30
|
+
createCopy(): Variable;
|
|
31
|
+
getVariables(): Set<Symbol>;
|
|
32
|
+
}
|
|
33
|
+
export default Variable;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { default as Expression } from '../Expression';
|
|
2
|
+
import { Symbol } from '../Language';
|
|
3
|
+
import { default as Structure, DomainElement } from '../Structure';
|
|
4
|
+
/**
|
|
5
|
+
* Represent simple term.
|
|
6
|
+
* @author Milan Cifra
|
|
7
|
+
* @author Jozef Filip
|
|
8
|
+
* @class
|
|
9
|
+
* @abstract
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
declare abstract class Term extends Expression {
|
|
13
|
+
abstract eval(structure: Structure, e: Map<Symbol, DomainElement>): DomainElement;
|
|
14
|
+
}
|
|
15
|
+
export default Term;
|