Talk:Narrowing of algebraic value sets

This was section in Let expression. It became too big and no longer was a good fit for that article.

Thepigdog (talk) 12:42, 13 April 2014 (UTC)


 * Examples needed in many sections.
 * Probabilistic value sets is under construction.

Thepigdog (talk) 02:22, 14 April 2014 (UTC)

The relational model of state
Interestingly, when I ran the example through a C++ compiler (with optimization turned off), the result printed was, x = 12, r = 24

I am not sure how or why it gave this result. Somehow it seems to have given the result from (x = 5 + x) as 12 both times, instead of 7 the first time, and 12 the second.

Thepigdog (talk) 14:16, 16 April 2014 (UTC)

I needed a way of taking an imperative program and translating it word for word into a mathematical framework, before doing transformations on it and reasoning about it. I am thinking of millions of lines of imperative code.

The relational model allows this, but "state holder" objects do not behave mathematically. For state holding objects x is not always equal to x. The substitution rule of value for equal value does not  hold for state holders. But for any other object it does.

So it allows imperative code to be brought into a mathematical framework, in a way that you immediately know where mathematical laws of substitution hold, and where they don't.

There is something unnerving about a function returning its input value. But there is something weird about imperative programs. Then why are they so ubiquitous?

I think in any real world you end up modelling small changes, while most things stay the same. This is modeled by the substitution operator $$s[x := y]$$. So in a database we want to reason about one small change to one record among many records in many tables. State gives you a natural way of doing that.

I am hoping that the relational model of state will help me integrate imperative and non-imperative representations, and most importantly provide proofs about imperative programs. Is the result mathematics, if x = x does not hold? I don't know.

Thepigdog (talk) 23:23, 17 April 2014 (UTC)

A lot more work needed to bring this up to standard. Examples etc, across the whole article. Wish it was all done already.

Thepigdog (talk) 01:56, 18 April 2014 (UTC)

Accessing the value set
I think of the condition function on a value set for a value as a flag that may be set to false by narrowing, but that's not the way the math works. There is no mathematical expression giving the set of values in a value set. It all depends on the conditions, which may be proved false, but are never proved true. The conditions are expressions that depend on the value, so proving them false eliminates the value.

It is all a bit counter-intuitive. I need the gset for getting the set of values a variable may take. This is needed for defining probabilistic value sets. The gset definition is a bit awkward and doent fit nicely into a mathematics.

So it's all a bit messy for something that is fundamentally very simple. The problem is in bridging the gap between a mathematical definition of narrowing and an algorithm implementing narrowing.

Thepigdog (talk) 07:00, 24 April 2014 (UTC)

Abduction
The term abduction seems much less intuitive than induction. The difference between the too seems puerile as clearly induction is a special case of abduction. Using abduction, I would say the theory that explains induction is abduction ;-)

And abduction is whacking your future wife over the head and running off with her, before her father notices ;-)

Logically I would want to group them together under the one theory, using the most intuitive and commonly known name. But that is not what I see used, so I must defer.

Thepigdog (talk) 05:22, 6 May 2014 (UTC)

Probabilistic inductive logic
Stunned amazement. Probabilistic inductive logic seems almost a done deal. Who said AI was years away? Then why are we still struggling with ridiculous programming languages, and manual programming methods.

L. De Raedt, K. Kersting. Probabilistic Inductive Logic Programming. Invited paper in S. Ben-David, J. Case and A. Maruoka, editors, Proceedings of the 15th International Conference on Algorithmic Learning Theory (ALT-2004), pages 19-36. Padova, Italy, October 2-5, 2004.

L. De Raedt, K. Kersting. Probabilistic Logic Learning. In ACM-SIGKDD Explorations, special issue on Multi-Relational Data Mining, Vol. 5(1), pp. 31-48, July 2003, [link]

Two ILP systems,
 * GOLEM ILP.
 * FOIL

Links,
 * Inductive programming
 * Inductive logic programming
 * Probabilistic programming language
 * Anti-unification (computer science)
 * Belief revision
 * Conjunctive normal form

Thepigdog (talk) 08:21, 15 May 2014 (UTC)

Underscore
In this section, what does this mean?
 * $$ x = V(\{\_ :: a_1, 2 :: a_2 \}) $$

and
 * $$ x = V(\{-2 :: a_1, \_ :: a_2, -2 :: a_2 \}) $$

Do the underscore characters ( _ ) represent some non-numeric value that the variables might assume? Do they mean "any number will do here, it doesn't matter"? Or did you mean −2? Art LaPella (talk) 21:40, 20 February 2015 (UTC)