# How to model degree variable in logic (new type of modal logic?)?

I am trying to model domain in logic (first order logic or some of modal logics) and I have variable which is degree and not true-false variable. There can be different conclusions depending on the degree of this variable. How to model such variable? If v ir degree variable and n degrees are possible, then v can be modelled by introduction of n propositional variables v1=true <= v=1, v2=true <= v=2 and so on. Additional constraints (axioms) should be introducted - e.g. only one variable from v1, ..., vn can be true.

Introduction of additional variables is not good, because: 1) it increases complexity; 2) it is not extendable in simple manner.

The question is - maybe there is some syntactic sugar available for degrees, or maybe special logics are already available for handing degrees of even variables whose domain is set of natural numbers?

Prolog and other logical programming environments has this feature, maybe this can be brought back to the theory as well.

What semantics of the logical operators would you like to have? Two of the best studied semantics for degrees are (propositional) Łukasiewicz logic and Gödel-Dummet logic. The latter enforces the domain to be a linear order which would allow you to model them via the naturals. It is also axiomatizable, since it is equivalent to intuitionistic propositional logic with the axiom of linearity (A => B) \/ (B => A).

It also has a hyper-sequent calculus which is sound and complete (have a look at e.g. A. Avron "A Simple Proof of Completeness and Cut-elimination for Propositional Gödel Logic"), which you could implement in Prolog.

• Well - this is interesting direction to go, but I would prefer logic that allows reasoning both about boolean and integer type variables. I will consider - whether this can be simulated with n-valued logics. But some kind of arithmetic would be preferable - to reason in two-valued logics with n-valued variables... – TomR Feb 28 '16 at 22:04
• That leads back to the first question - I'll make it more concrete. Suppose v(A) = 3 and v(B) = 5. What would you expect v(A => B) to be? (just to avoid confusion, => means implication, not greater than or equal). – lambda.xy.x Feb 28 '16 at 23:14