Example #1
0
    void context::display_binary_clauses(std::ostream & out) const {
        bool first = true;
        unsigned l_idx = 0;
        for (watch_list const& wl : m_watches) {
            literal l1 = to_literal(l_idx++);
            literal neg_l1 = ~l1;
            literal const * it2  = wl.begin_literals();
            literal const * end2 = wl.end_literals();
            for (; it2 != end2; ++it2) {
                literal l2 = *it2;
                if (l1.index() < l2.index()) {
                    if (first) {
                        out << "binary clauses:\n";
                        first = false;
                    }
                    expr_ref t1(m_manager), t2(m_manager);
                    literal2expr(neg_l1, t1);
                    literal2expr(l2, t2);
                    expr_ref disj(m_manager.mk_or(t1, t2), m_manager);
                    out << disj << "\n";
#if 0
                    out << "(clause ";
                    display_literal(out, neg_l1);
                    out << " ";
                    display_literal(out, l2);
                    out << ")\n";
#endif
                }
            }
        }
    }
int mate(int x, int y)
{
		int arg1,arg2;
		arg1=not(x);
		arg2=y;
		return disj(arg1,arg2);
}
Example #3
0
 void udoc_relation::to_formula(expr_ref& fml) const {
     ast_manager& m = fml.get_manager();
     expr_ref_vector disj(m);
     for (unsigned i = 0; i < m_elems.size(); ++i) {
         disj.push_back(to_formula(m_elems[i]));
     }
     fml = mk_or(m, disj.size(), disj.c_ptr());
 }
int excl(int x, int y)
{
	int arg1,arg2,arg3;

		arg1=disj(x,y);
		arg2=conj(x,y);
		arg3=not(arg2);
		return conj(arg1,arg3);
}
Example #5
0
cmp(u,v)
{
	int x;
	eu = u;
	ev = v;
	x = disj(1);
	if(x!=1)
		return(x);
	return(eat(1,0));
}
int excl (int x, int y){
    int temp1,temp2,temp3,temp4;
    temp1=disj(x,y);
    temp2=conj(x,y);
    temp3=not (temp2);
    temp4=conj(temp1,temp3);
    return temp4;
    
    /*END_OF_MAIN*/
}
int main ()
{
    /*START_OF_MAIN*/

    int x,y;
    /*END_OF_VARIABLES*/
    
    /* Oluşturdugum fonksiyonları burada cagırdım */   
    conj(x,y);
    disj(x,y);
    not(x);
    mate(x,y);
    excl(x,y);
    
    return 0;   
}
int mate (int x, int y){
    int temp1,temp2;
    temp1=not(x);
    temp2=disj(temp1,y);
    return temp2;
}
int main()
{
	
	int part;
	int t1,t2;

	printf("           MENU OF BOOLEAN ALGEBRA  \n");
	printf("1.Conjunction\n2.Disjunction\n3.Negation\n");
	printf("4.Material Implication\n5.Exclusive Or\n");
	printf("6.Test the calculator with Monotone Laws\n7.Exit\n");
	                     
	printf("Selection Time!\nEnter a part: ");
	scanf("%d",&part);	



	switch(part)
        {
        case 1:
	printf("CONJUNCTION\n");
	printf("\tYou can test true of conjunction law.\nLet's start test!!!");
	printf("Enter two value (1 or 0) for test: ");
	scanf("%d %d",&t1,&t2);
	printf("%d and %d = %d\n",t1,t2,conj(t1,t2));
	printf("                     <<<<<>>>>>\n                        ");
	break;

	case 2:

	printf("DISJUNCTION\n");
	printf("\tYou can test true of dijunction law.\nLet's start test!!!");
	printf("Enter two value (1 or 0) for test: ");
	scanf("%d %d",&t1,&t2);
	printf("%d or %d = %d\n",t1,t2,disj(t1,t2));
	printf("                     <<<<<<>>>>>\n                        ");
	break;

	case 3:

	printf("NEGATION\n");
	printf("\tYou can test true of negation law.\nLet's start test!!!");
	printf("Enter a value (1 or 0) for test: ");
	scanf("%d",&t1);
	printf("'(%d)  = %d\n",t1,not(t1,t2));
	printf("                     <<<<<<>>>>>>\n                        ");		
	break;

	case 4:

	printf("MATERİAL IMPLICATION\n");
	printf("\tYou can test true of material law.\nLet's start test!!!");
	printf("Enter two value (1 or 0) for test: ");
	scanf("%d %d",&t1,&t2);
	printf("%d mate %d = %d\n",t1,t2,mate(t1,t2));
	printf("                     <<<<<<>>>>>\n                        ");
	break;

	case 5:

	printf("5.EXCLUSIVE OR\n");
	printf("\tYou can test true of exclusive law.\nLet's start test!!!");
	printf("Enter two value (1 or 0) for test: ");
	scanf("%d %d",&t1,&t2);
	printf("%d excl %d = %d\n",t1,t2,excl(t1,t2)                       );
	printf("                     <<<<<<>>>>>\n                        ");          
	break;
	case 6:
	printf("Test the calculator with Monotone Laws\n");
	printf("Enter the 'results.txt' for Monotone Laws\n");
	testMonotone();
	break;
	case 7:

	printf("7.EXIT\n");
	printf("           <<<<<<THE END OF MENU>>>>>>\n                   ");	
	break;

	default:

	printf("NOT IN MENU\n");
	break;
	}

	return 0;	
}
void testMonotone()
{
	FILE *out=fopen("results.txt","w");
	int x,y,z;
	char c1,c2,c3,c4;            
	char c5,c6,c7,c8; 

/*--------------------------------1.KURAL----------------------------*/
	
	fprintf(out,"**********Associativity of V**********\n");

	x=1; y=1; z=1;
	if(disj(x,disj(y,z))==disj(disj(x,y),z)) {
        fprintf(out,"x=1, y=1, z=1 için dogru\n");
	c1='t'; /* control1 */                   }
	else
	fprintf(out,"x=1, y=1, z=1 için yanlıs\n");

	x=1; y=1; z=0;
	if(disj(x,disj(y,z))==disj(disj(x,y),z)) {
        fprintf(out,"x=1, y=1, z=0 için dogru\n");
	c2='t'; /* control2 */                   }
	else
	fprintf(out,"x=1, y=1, z=0 için yanlıs\n");

	x=1; y=0; z=1;
	if(disj(x,disj(y,z))==disj(disj(x,y),z)) {
        fprintf(out,"x=1, y=0, z=1 için dogru\n");
	c3='t'; /* control3 */                   } 
	else
	fprintf(out,"x=1, y=0, z=1 için yanlıs\n");

	x=1; y=0; z=0;
	if(disj(x,disj(y,z))==disj(disj(x,y),z)) {
        fprintf(out,"x=1, y=0, z=0 için dogru\n");
	c4='t'; /* control4 */                   }
	else
	fprintf(out,"x=1, y=0, z=0 için yanlıs\n");

	x=0; y=1; z=1;
	if(disj(x,disj(y,z))==disj(disj(x,y),z)) {
        fprintf(out,"x=0, y=1, z=1 için dogru\n");
	c5='t'; /* control5 */                   }
	else
	fprintf(out,"x=0, y=1, z=1 için yanlıs\n");

	x=0; y=1; z=0;
	if(disj(x,disj(y,z))==disj(disj(x,y),z)) {
        fprintf(out,"x=0, y=1, z=0 için dogru\n");
	c6='t'; /* control6 */                   } 
	else
	fprintf(out,"x=0, y=1, z=0 için yanlıs\n");

	x=0; y=0; z=1;
	if(disj(x,disj(y,z))==disj(disj(x,y),z)) {
        fprintf(out,"x=0, y=0, z=1 için dogru\n");
	c7='t'; /* control7 */                   }
	else
	fprintf(out,"x=0, y=0, z=1 için yanlıs\n");

	x=0; y=0; z=0;
	if(disj(x,disj(y,z))==disj(disj(x,y),z)) {
        fprintf(out,"x=0, y=0, z=0 için dogru\n");
	c8='t'; /* control8 */                   }
	else
	fprintf(out,"x=0, y=0, z=0 için yanlıs\n");

		if(c1=='t' && c2=='t' && c3=='t' && c4=='t')
		{
			if(c5=='t' && c6=='t' && c7=='t' && c8=='t')
			fprintf(out,"\n1.Kural sağlandı!\n\n");
		}
/*--------------------------------2.KURAL----------------------------*/

	fprintf(out,"**********Associativity of Λ**********\n");

	x=1; y=1; z=1;
	if(conj(x,conj(y,z))==conj(conj(x,y),z)) {
        fprintf(out,"x=1, y=1, z=1 için dogru\n");
	c1='t'; /* control1 */                   }
	else
	fprintf(out,"x=1, y=1, z=1 için yanlıs\n");

	x=1; y=1; z=0;
	if(conj(x,conj(y,z))==conj(conj(x,y),z)) {
        fprintf(out,"x=1, y=1, z=0 için dogru\n");
	c2='t'; /* control2 */                   }
	else
	fprintf(out,"x=1, y=1, z=0 için yanlıs\n");

	x=1; y=0; z=1;
	if(conj(x,conj(y,z))==conj(conj(x,y),z)) {
        fprintf(out,"x=1, y=0, z=1 için dogru\n");
	c3='t'; /* control3 */                   }
	else
	fprintf(out,"x=1, y=0, z=1 için yanlıs\n");

	x=1; y=0; z=0;
	if(conj(x,conj(y,z))==conj(conj(x,y),z)) {
        fprintf(out,"x=1, y=0, z=0 için dogru\n");
	c4='t'; /* control4 */                  }
	else
	fprintf(out,"x=1, y=0, z=0 için yanlıs\n");

	x=0; y=1; z=1;
	if(conj(x,conj(y,z))==conj(conj(x,y),z)) {
        fprintf(out,"x=0, y=1, z=1 için dogru\n");
	c5='t'; /* control5 */                   }
	else
	fprintf(out,"x=0, y=1, z=1 için yanlıs\n");

	x=0; y=1; z=0;
	if(conj(x,conj(y,z))==conj(conj(x,y),z)) {
        fprintf(out,"x=0, y=1, z=0 için dogru\n");
	c6='t'; /* control6 */                   }
	else
	fprintf(out,"x=0, y=1, z=0 için yanlıs\n");

	x=0; y=0; z=1;
	if(conj(x,conj(y,z))==conj(conj(x,y),z)) {
        fprintf(out,"x=0, y=0, z=1 için dogru\n");
	c7='t'; /* control7 */                   }
	else
	fprintf(out,"x=0, y=0, z=1 için yanlıs\n");

	x=0; y=0; z=0;
	if(conj(x,conj(y,z))==conj(conj(x,y),z)) {
        fprintf(out,"x=0, y=0, z=0 için dogru\n");
	c8='t'; /* control8 */                   } 
	else
	fprintf(out,"x=0, y=0, z=0 için yanlıs\n");

	if(c1=='t' && c2=='t' && c3=='t' && c4=='t')
		{
			if(c5=='t' && c6=='t' && c7=='t' && c8=='t')
			fprintf(out,"\n2.Kural sağlandı!\n\n");
		}

/*--------------------------------3.KURAL----------------------------*/

	fprintf(out,"**********Commutativity of V**********\n");

	x=1; y=1; 
	if(disj(x,y)==disj(y,x))               {
        fprintf(out,"x=1, y=1 için dogru\n");
	c1='t'; /* control1 */                 }    
	else
	fprintf(out,"x=1, y=1 için yanlıs\n");

	x=1; y=0; 
	if(disj(x,y)==disj(y,x))               {
        fprintf(out,"x=1, y=0 için dogru\n");
	c2='t'; /* control2 */                 }   
	else
	fprintf(out,"x=1, y=0 için yanlıs\n");

	x=0; y=1; 
	if(disj(x,y)==disj(y,x))               {
        fprintf(out,"x=0, y=1 için dogru\n");
	c3='t'; /* control3 */                 }   
	else
	fprintf(out,"x=0, y=1 için yanlıs\n");

	x=0; y=0; 
	if(disj(x,y)==disj(y,x))               {
        fprintf(out,"x=0, y=0 için dogru\n");
	c4='t'; /* control4 */                 }   
	else
	fprintf(out,"x=0, y=0 için yanlıs\n");

	if(c1=='t' && c2=='t' && c3=='t' && c4=='t')	
	fprintf(out,"\n3.Kural sağlandı!\n\n");

/*--------------------------------4.KURAL----------------------------*/

	fprintf(out,"********** Commutativity of Λ**********\n");

	x=1; y=1; 
	if(conj(x,y)==conj(y,x))                {
        fprintf(out,"x=1, y=1 için dogru\n");
	c1='t'; /* control1 */                  }   
	else
	fprintf(out,"x=1, y=1 için yanlıs\n");

	x=1; y=0; 
	if(conj(x,y)==conj(y,x))               {
        fprintf(out,"x=1, y=0 için dogru\n");
	c2='t'; /* control2 */                 }   
	else
	fprintf(out,"x=1, y=0 için yanlıs\n");

	x=0; y=1; 
	if(conj(x,y)==conj(y,x))               {
        fprintf(out,"x=0, y=1 için dogru\n");
	c3='t'; /* control3 */                 }    
	else
	fprintf(out,"x=0, y=1 için yanlıs\n");

	x=0; y=0; 
	if(conj(x,y)==conj(y,x))               {
        fprintf(out,"x=0, y=0 için dogru\n");
	c4='t'; /* control4 */                 }    
	else
	fprintf(out,"x=0, y=0 için yanlıs\n");

	if(c1=='t' && c2=='t' && c3=='t' && c4=='t')	
	fprintf(out,"\n4.Kural sağlandı!\n\n");

/*--------------------------------5.KURAL----------------------------*/
	
	fprintf(out,"**********Distributivity of Λ over V**********\n");

	x=1; y=1; z=1;
	if(conj(x,disj(y,z))==disj(conj(x,y),conj(x,z))) {
        fprintf(out,"x=1, y=1, z=1 için dogru\n");
	c1='t'; /* control1 */                           }
	else
	fprintf(out,"x=1, y=1, z=1 için yanlıs\n");

	x=1; y=1; z=0;
	if(conj(x,disj(y,z))==disj(conj(x,y),conj(x,z))) {
        fprintf(out,"x=1, y=1, z=0 için dogru\n");
	c2='t';  /* control2 */                          } 
	else
	fprintf(out,"x=1, y=1, z=0 için yanlıs\n");

	x=1; y=0; z=1;
	if(conj(x,disj(y,z))==disj(conj(x,y),conj(x,z))) {
        fprintf(out,"x=1, y=0, z=1 için dogru\n");
	c3='t'; /* control3 */                           }
	else
	fprintf(out,"x=1, y=0, z=1 için yanlıs\n");

	x=1; y=0; z=0;
	if(conj(x,disj(y,z))==disj(conj(x,y),conj(x,z))) {
        fprintf(out,"x=1, y=0, z=0 için dogru\n");
	c4='t'; /* control4 */                           }   
	else
	fprintf(out,"x=1, y=0, z=0 için yanlıs\n");

	x=0; y=1; z=1;
	if(conj(x,disj(y,z))==disj(conj(x,y),conj(x,z))) {
        fprintf(out,"x=0, y=1, z=1 için dogru\n");
	c5='t'; /* control5 */                           }
	else
	fprintf(out,"x=0, y=1, z=1 için yanlıs\n");

	x=0; y=1; z=0;
	if(conj(x,disj(y,z))==disj(conj(x,y),conj(x,z))) {
        fprintf(out,"x=0, y=1, z=0 için dogru\n");
	c6='t'; /* control6 */                           }
	else
	fprintf(out,"x=0, y=1, z=0 için yanlıs\n");

	x=0; y=0; z=1;
	if(conj(x,disj(y,z))==disj(conj(x,y),conj(x,z))) {
        fprintf(out,"x=0, y=0, z=1 için dogru\n");
	c7='t'; /* control7 */                           }   
	else
	fprintf(out,"x=0, y=0, z=1 için yanlıs\n");

	x=0; y=0; z=0;
	if(conj(x,disj(y,z))==disj(conj(x,y),conj(x,z))) {
        fprintf(out,"x=0, y=0, z=0 için dogru\n");
	c8='t'; /* control8 */                           }
	else
	fprintf(out,"x=0, y=0, z=0 için yanlıs\n");
 
	if(c1=='t' && c2=='t' && c3=='t' && c4=='t')
		{
		  if(c5=='t' && c6=='t' && c7=='t' && c8=='t')
		  fprintf(out,"\n5.Kural sağlandı!\n\n");
		}

/*--------------------------------6.KURAL----------------------------*/

	fprintf(out,"**********Identity for V**********\n");

	x=1; 
	if(disj(x,0)==x)               {
        fprintf(out,"x=1 için dogru\n");
	c1='t'; /* control1 */         }
	else             
	fprintf(out,"x=1 için yanlıs\n");
	                 
	x=0; 
	if(disj(x,0)==x)                {
        fprintf(out,"x=0 için dogru\n");
	c2='t'; /* control2 */          }    
	else             
	fprintf(out,"x=0 için yanlıs\n");

	if(c1=='t' && c2=='t')
	fprintf(out,"\n6.Kural sağlandı!\n\n");

/*--------------------------------7.KURAL----------------------------*/

	fprintf(out,"**********Identity for Λ**********\n");

	x=1; 
	if(conj(x,1)==x)                 {
        fprintf(out,"x=1 için dogru\n");
	c1=='t'; /* control1 */          }
	else             
	fprintf(out,"x=1 için yanlıs\n");
			 								
	x=0; 
	if(conj(x,1)==x)                 {
        fprintf(out,"x=0 için dogru\n");
	c2=='t' ; /* control2 */         }
	else
	fprintf(out,"x=0 için yanlıs\n");

	if(c1=='t' && c2=='t')
	fprintf(out,"\n7.Kural sağlandı!\n\n");

/*--------------------------------8.KURAL----------------------------*/

	fprintf(out,"**********Annihilator for Λ**********\n");

	x=1; 
	if(conj(x,0)==0)                 {
        fprintf(out,"x=1 için dogru\n");
	c1=='t'; /* control1 */          }
	else            
	fprintf(out,"x=1 için yanlıs\n");
			 
	x=0; 
	if(conj(x,0)==0)                {
        fprintf(out,"x=0 için dogru\n");
	c2=='t'; /* control2 */         }
	else
	fprintf(out,"x=0 için yanlıs\n");

	if(c1=='t' && c2=='t')
	fprintf(out,"\n8.Kural sağlandı!\n\n"); 

	fclose(out);
}