<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Muaz</title>
    <description>The latest articles on DEV Community by Muaz (@muazn).</description>
    <link>https://dev.to/muazn</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4232065%2F21deddb6-8893-495d-98f8-c007712b5fb8.png</url>
      <title>DEV Community: Muaz</title>
      <link>https://dev.to/muazn</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/muazn"/>
    <language>en</language>
    <item>
      <title>Find the case that breaks your boolean logic: Tangibool's free version is live</title>
      <dc:creator>Muaz</dc:creator>
      <pubDate>Sat, 07 Nov 2026 21:41:09 +0000</pubDate>
      <link>https://dev.to/muazn/find-the-case-that-breaks-your-boolean-logic-tangibools-free-version-is-live-d1l</link>
      <guid>https://dev.to/muazn/find-the-case-that-breaks-your-boolean-logic-tangibools-free-version-is-live-d1l</guid>
      <description>&lt;p&gt;Two lines written from the same spec:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;// "Allow entry to members and invited guests, unless they are banned."&lt;br&gt;
const allowA = (member || invited) &amp;amp;&amp;amp; !banned;&lt;br&gt;
const allowB = member || (invited &amp;amp;&amp;amp; !banned);&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The two lines disagree in two of the eight possible cases: a banned member, with or without an invitation. allowB lets them in.&lt;/p&gt;

&lt;p&gt;I built Tangibool so that differences like this can't hide, and today its free version is live at &lt;a href="https://tangibool.com/" rel="noopener noreferrer"&gt;https://tangibool.com/&lt;/a&gt;. It runs in your browser, needs no account, and includes every feature.&lt;/p&gt;

&lt;p&gt;See the two lines above compared in the &lt;a href="https://tangibool.com/logic/tools/equivalence-checker/?q=%28member+OR+invited%29+AND+NOT+banned&amp;amp;q2=member+OR+%28invited+AND+NOT+banned%29" rel="noopener noreferrer"&gt;free equivalence checker&lt;/a&gt;, no sign-up: open the comparison. It reports Not equivalent with member = true, invited = false, banned = true.&lt;/p&gt;

&lt;p&gt;Just finished work on the free version of Tangibool. Try it and let me know what you think!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The app: &lt;a href="//app.tangibool.com"&gt;app.tangibool.com&lt;/a&gt;, free, no account&lt;/li&gt;
&lt;li&gt;The free logic reference, with a truth table generator, an equivalence checker and an argument checker: &lt;a href="//tangibool.com/logic"&gt;tangibool.com/logic&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;14 guided lessons, open to everyone: &lt;a href="//tangibool.com/logic/lessons"&gt;tangibool.com/logic/lessons&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'd love feedback from people who write conditionals as part of the work they do. What's the gnarliest boolean condition in your codebase, and did Tangibool find anything in it? If it confused you anywhere, I want to hear that too.&lt;/p&gt;

</description>
      <category>testing</category>
      <category>programming</category>
      <category>analysis</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
