Logic without Bound Variables [230 views]

images-1I’ve already described the relatively simple Monadic Hybrid Calculus that allows you to say simple things formally without bound variables. For example, sG may mean “Socrates is Greek”, [G]M “all Greeks are Mortal”, and the conclusion “Socrates is Mortal”, sM.

The MHC has a big brother, the Hybrid Predicate Calculus (HPC), which (apparently) has the power of full predicate logic. But at a certain point, it gets weird!

Continue reading

Posted in Uncategorized | Leave a comment

My Video Career [1500 views]

A while back I decided that it would easy and useful to video record  some lectures. Little did I know!

Continue reading

Posted in Uncategorized | Leave a comment

Al-Khwarizmi Schmal-Khwarizmi [640 views]

 

I  like  true/false exam questions and through my career have thought up hundreds of them. Every now and then, for comic relief and to inflate the grades, I include some that are ridiculously easy. However, I’ve never found one that is so ridiculous that everyone gets it right. I always had a few takers. Here are some of my favourites.

Continue reading

Posted in Uncategorized | 1 Comment

Extensional Higher Order Prolog [3200 views]

2ndOrderOne big issue in the logic programming vs functional programming debate is logic programming’s (or at least the original Prolog’s) restriction to first order logic. To functional programmers this constraint is intolerable; even the simplest Haskell programs are higher order (although this is often due to currying).

Can this be fixed? Yes, but you have to be careful.

Continue reading

Posted in research | 4 Comments

Nuclear Pedagogy [1300 views]

This a followup on Wadge’s Law

Every Computer Science course has a tendency to degenerate into a programming course.

This just begs to be generalized.

What about programming courses? Do they degenerate? To what?

For example, according to language teachers I’ve talked to, every, say, French course has a tendency to degenerate into a grammar course. What about other subjects?

Continue reading

Posted in musings | 1 Comment

B before A [2500 views]

procrastinationRemember this Wadge’s Law

Whenever you want to do something, there’s always someone who says there’s something else you have to do first.

Call  the thing you want to do A, the thing you’ve been told you have to do first B. They’re telling you you have to do B before A.

Continue reading

Posted in musings | 1 Comment

Department of Redundancy Department [300 views]

images-2If you ever took an English course. you learned that “redundancy” is a bad thing. It means useless, wasted repetition. If you live in the UK you dread being made “redundant” because it means your boss has no use for you and has laid you off.

Only in engineering can it have a positive connotation – for example, a redundant duplicate backup system can be a good idea for safety and reliability. It’s repetition but it’s not useless or wasted.

In fact redundancy is widely used in practice and duplication/backup is only the simplest form. I discovered this trying to make sense of a multi-topic introductory computer science course.

Continue reading

Posted in musings | Leave a comment

Wadge Degrees [1200 views]

Screen Shot 2020-09-25 at 7.10.43 PMWhen I was a young grad student at UC Berkeley, I invented what are now called “Wadge degrees”. Not to mention “Wadge reducibility”, “Wadge games”, “Wadge’s Lemma” and the “Wadge hierarchy”  (there’s a Wikipedia entry on the latter).

“So”, I am often asked, “what is this all about?”

Short answer: Wadge reducibility is a simple  way to compare the complexity of two properties (sets) of real numbers. If A and B are two such sets, A≤WB (or simply A≤B) iff there is a continuous total function f such that for all reals a

a is a member of A iff f(a) is a member of B

Continue reading

Posted in research | 2 Comments

Lucid Meets Prolog [1900 views]

Iimages-2 remember when, a long time ago, Logic Programming was just starting out. The logic programmers would go to the functional programming gatherings and hang around the sidelines, hoping to convince everyone that logic programming was a kind of functional programming worthy of attention.

Then came the Japanese “Fifth Generation” project (which was based on Prolog) and the situation was reversed. Functional programmers would loiter in the hallways at Logic Programming conferences trying to convince everyone that functional programming was a kind of logic programming worthy of attention.

Neither side ever succeeded, partly because of serious technical difficulties. Functional programming is deterministic; a program has only one answer. Adding nondeterministic operators (like McCarthy’s amb(a,b), which returns either a or b) messes up the least fixed point semantics. Attempts to handle this with a “power domain” construct never really worked.

Continue reading

Posted in research | 1 Comment

Laws of the Universe and Teaching

Time for another break from research (at least the normal kind).

I seem to be always discovering fundamental Laws of the Universe, especially about teaching. I’d like to share some of them with you.  They are each called “Wadge’s Law” … by me. Maybe the name will catch on. Here they are.

Wadge’s Law (of traffic)

No matter how late you go through an orange light, the guy/gal behind you follows you through.

Continue reading

Posted in musings | Leave a comment