So my seemingly once-a-year work on developing this project is beginning again. Now the issue is: how do I handle circular logic? In this post, I’ll see if I can figure it out, because right now I have no idea.
Say we have a statement: If @1 is A, then @1 is B. This necessarily leads to the contrapositive, if ~@1 is B, then ~@1 is A. Which necessarily leads to the contrapositive, if @1 is A, then @1 is B…
Currently this situation isn’t really handled. In fact any handling appears to be accidental – statements are only entered once, so when it loops back to entering if @1 is A, then @1 is a B again, it stops. Likewise when determining truth status, it only continues to update if status has changed. So again, it returns to check A->B, finds it’s already the implied value (true) and stops.
But this poses a problem – let’s say A->B gets voted to be false. It seems like currently, nothing happens – the voted status is false and the implied status remains true, even though no *voted true* statement any longer supports A-B. This seems to be a bug, but fixing it requires answering the question: what should happen?
One option would be to update implied statements to be false. So now this raises an interesting logical issue – Logic 101 tells us that if a statement is true, it’s contrapositive is true. But does the same apply if a statement is false? Keep in mind that falsity in SL means “not always true” rather than “always false”. The internet isn’t helping much in answering this. So let’s try an example – let’s take the sometimes true but false in SL statement: if a shape has 4 sides, it is a parallelogram, which is “false” because some 4-sided shapes do not have parallel sides. The contrapositive is: if a shape is not a parallelogram, then it does not have 4 sides. This is false for the same reason – a shape can have 4 sides and not be a parallelogram. So for contrapositives, I’m comfortable saying marking the implied statement false should work.
But are there other rules that may not be reversible? What about the transitive property? Let’s say if a shape is parallelogram, it has two pairs of identical angles, which is true. Incorrectly applying this with the false statement from the last paragraph we’d conclude that if a shape has four sides, it would have 2 sets of identical angles. Which is false – so it would seem to be correct here as well. BUT what if there was another way to reach the conclusion? Say the last conclusion is “it has less than 5 sides”. So we would have the transitive 4 sides -> parallelogram -> less than 5 sides. Simply declaring this to be false from the falsity of the first part would be incorrect, because it ignores the possibility of alternate proofs.
Instead, in the transitive case, we should regard any implication from a false statement as undetermined, that way it can still be otherwise implied without considering it a conflict in logic. Only in the case of direct statements should falsity automatically be imputed.
Posted in: Uncategorized