Some decidable subsets of first-order logic.
| Function or value | Description | ||
| 
                
               | 
 
 Example
 Evaluates totrue.Example
 ThrowsSystem.Exception: Not decidable. | 
| Function or value | Description | ||
| 
                
               | Example
 Evaluates to`(exists y. ~P(y)) \/ (forall x. P(x))`. | ||
| 
                
               | |||
| 
                
               | The intention is to transform an existential formula of the form \(\exists x.\ p_1 \land \cdots \land p_n \) in \((\exists x.\ p_i \land \cdots \land p_j) \land (p_k \land \cdots \land p_l)\) where the \(p_i \land \cdots \land p_j\) are the those with \(x\) free and \(p_k \land \cdots \land p_l)\) are the other. 
 
 Example
 Evaluates to`(exists x. P(x) /\ T(y) /\ R(x,y)) /\ Q(y) /\ (S(z,w) ==> Q(i))`. | ||
| 
 
 Example
 Evaluates totrue.Example
 ThrowsSystem.Exception: Not decidable. | 
| Function or value | Description | ||
| 
                
               | |||
| 
                
               | |||
| 
                
               | 
 
 Example
 Evaluates to"all P are S".Example
 ThrowsSystem.ArgumentException: anglicize_premiss: not a syllogism premiss (Parameter 'fm'). | ||
| 
                
               | 
 
 Example
 val x: objEvaluates to "If all M are P and all S are M, then all S are P".Example
 ThrowsSystem.ArgumentException: anglicize_syllogism: not a syllogism (Parameter 'fm'). | ||
| 
                
               | 
 Example
 Evaluates to`forall x. P(x) ==> S(x)`. | ||
| 
                
               | 
 Example
 Evaluates to`forall x. P(x) ==> ~S(x)`. | ||
| 
                
               | 
 Example
 Evaluates to`exists x. P(x) /\ S(x)`. | ||
| 
                
               | 
 Example
 Evaluates to`exists x. P(x) /\ ~S(x)`. | 
| Function or value | Description | ||
| 
                
              
                  Full Usage: 
                   alldepmappings dom ranParameters: 
 ('a * 'b) list- 
                      The input list of function name-arity pairs.ran : 'b -> 'c list- 
                      The list of all possible functions in the domain.Returns: ('a -> 'c) listAll interpretations of the input function symbols, i.e. all mappings 
 from the function symbols indomto the domain functions inran. | 
 
 Example
 val dom: int list val functionSymbols: (string * int) list val functions: obj Multiple items module List from Microsoft.FSharp.Collections -------------------- type List<'T> = | op_Nil | op_ColonColon of Head: 'T * Tail: 'T list interface IReadOnlyList<'T> interface IReadOnlyCollection<'T> interface IEnumerable interface IEnumerable<'T> member GetReverseIndex: rank: int * offset: int -> int member GetSlice: startIndex: int option * endIndex: int option -> 'T list static member Cons: head: 'T * tail: 'T list -> 'T list member Head: 'T member IsEmpty: bool member Item: index: int -> 'T with get ... val mapi: mapping: (int -> 'T -> 'U) -> list: 'T list -> 'U list val i: int val f: (string -> obj -> obj) val map: mapping: ('T -> 'U) -> list: 'T list -> 'U list val args: obj val take: count: int -> list: 'T list -> 'T listEvaluates to Multiple items val int: value: 'T -> int (requires member op_Explicit) -------------------- type int = int32 -------------------- type int<'Measure> = int type 'T list = List<'T> | ||
| 
                
              
                  Full Usage: 
                   allfunctions dom nParameters: 
 'a list- 
                      The input domain.n : int- 
                      The input arity.Returns: ('a list -> 'a) listAll the functions fromdomtodomwith arityn. | 
 
 Example
 val dom: int list Multiple items module List from Microsoft.FSharp.Collections -------------------- type List<'T> = | op_Nil | op_ColonColon of Head: 'T * Tail: 'T list interface IReadOnlyList<'T> interface IReadOnlyCollection<'T> interface IEnumerable interface IEnumerable<'T> member GetReverseIndex: rank: int * offset: int -> int member GetSlice: startIndex: int option * endIndex: int option -> 'T list static member Cons: head: 'T * tail: 'T list -> 'T list member Head: 'T member IsEmpty: bool member Item: index: int -> 'T with get ... val mapi: mapping: (int -> 'T -> 'U) -> list: 'T list -> 'U list val i: int val f: (obj -> obj) val map: mapping: ('T -> 'U) -> list: 'T list -> 'U list val args: obj val take: count: int -> list: 'T list -> 'T listEvaluates to Multiple items val int: value: 'T -> int (requires member op_Explicit) -------------------- type int = int32 -------------------- type int<'Measure> = int type 'T list = List<'T> | ||
| 
                
              
                  Full Usage: 
                   allmappings dom ranParameters: 
 'a list- 
                      The input domain.ran : 'b list- 
                      The input range.Returns: ('a -> 'b) listAll possible functions out of the domaindominto rangeran, and undefined outsidedom. | 
 
 Example
 val dom: int list val ran: int list Multiple items module List from Microsoft.FSharp.Collections -------------------- type List<'T> = | op_Nil | op_ColonColon of Head: 'T * Tail: 'T list interface IReadOnlyList<'T> interface IReadOnlyCollection<'T> interface IEnumerable interface IEnumerable<'T> member GetReverseIndex: rank: int * offset: int -> int member GetSlice: startIndex: int option * endIndex: int option -> 'T list static member Cons: head: 'T * tail: 'T list -> 'T list member Head: 'T member IsEmpty: bool member Item: index: int -> 'T with get ... val mapi: mapping: (int -> 'T -> 'U) -> list: 'T list -> 'U list val i: int val f: (int -> obj) val map: mapping: ('T -> 'U) -> list: 'T list -> 'U listEvaluates to  | ||
| 
                
              
                  Full Usage: 
                   allpredicates dom nParameters: 
 'a list- 
                      The input domain.n : int- 
                      The input arity.Returns: ('a list -> bool) listAll the possibile predicates indomwith arityn. | 
 
 Example
 val dom: int list Multiple items module List from Microsoft.FSharp.Collections -------------------- type List<'T> = | op_Nil | op_ColonColon of Head: 'T * Tail: 'T list interface IReadOnlyList<'T> interface IReadOnlyCollection<'T> interface IEnumerable interface IEnumerable<'T> member GetReverseIndex: rank: int * offset: int -> int member GetSlice: startIndex: int option * endIndex: int option -> 'T list static member Cons: head: 'T * tail: 'T list -> 'T list member Head: 'T member IsEmpty: bool member Item: index: int -> 'T with get ... val mapi: mapping: (int -> 'T -> 'U) -> list: 'T list -> 'U list val i: int val f: (obj -> obj) val map: mapping: ('T -> 'U) -> list: 'T list -> 'U list val args: obj val take: count: int -> list: 'T list -> 'T listEvaluates to Multiple items val int: value: 'T -> int (requires member op_Explicit) -------------------- type int = int32 -------------------- type int<'Measure> = int type 'T list = List<'T> type bool = System.Boolean | ||
| 
                
              
                  Full Usage: 
                   alltuples n lParameters: 
 int- 
                      The size of the resulting tuples.l : 'a list- 
                      The input list.Returns: 'a list listAll tuples of sizenwith members chosen from the listl. | 
 
 Example
 Evaluates to | ||
| 
                
               | 
 Example
 Evaluates totrue. | ||
| 
                
               | 
 NoteTermination is guaranteed only for formulas with the finite model property. Example
 Evaluates totrue.Example
 Evaluates tofalse.Example
 Crashes. | ||
| 
                
               | 
 Example
 Evaluates totrue. | ||
| 
                
               | 
 Example
 Multiple items module List from Microsoft.FSharp.Collections -------------------- type List<'T> = | op_Nil | op_ColonColon of Head: 'T * Tail: 'T list interface IReadOnlyList<'T> interface IReadOnlyCollection<'T> interface IEnumerable interface IEnumerable<'T> member GetReverseIndex: rank: int * offset: int -> int member GetSlice: startIndex: int option * endIndex: int option -> 'T list static member Cons: head: 'T * tail: 'T list -> 'T list member Head: 'T member IsEmpty: bool member Item: index: int -> 'T with get ... val map: mapping: ('T -> 'U) -> list: 'T list -> 'U list val inst: obj val n: obj val k: objEvaluates to [([("_0", ``c_x``); ("_1", ``c_x``)], 0, 2)]. | ||
| 
                
               | 
 
 Example
 val inst: obj val n: obj val k: objEvaluates to ([("_0", ``_1``); ("_1", ``_2``)], 0, 3). |