Difference between revisions of "ApCoCoA-1:SAT.FixBits"

From ApCoCoAWiki
m (Bot: Category moved)
m (replaced <quotes> tag by real quotes)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
 +
{{Version|1}}
 
<command>
 
<command>
 
     <title>SAT.FixBits</title>
 
     <title>SAT.FixBits</title>
Line 20: Line 21:
 
SPE:=[F1,F2,F3];  
 
SPE:=[F1,F2,F3];  
 
SAT.ConvertToCNF(SPE,4,0,0);
 
SAT.ConvertToCNF(SPE,4,0,0);
SAT.FixBits([[1,0],[2,1]],<quotes>sat.cnf</quotes>); -- fixes x[1]=0 and x[2]=1
+
SAT.FixBits([[1,0],[2,1]],"sat.cnf"); -- fixes x[1]=0 and x[2]=1
SAT.LaunchMiniSat(<quotes>sat_fixed.cnf</quotes>);
+
SAT.LaunchMiniSat("sat_fixed.cnf");
 
SAT.GetResult();
 
SAT.GetResult();
 
--Result: [0,1,0] Test with: Eval(SPE,[0,1,0]);
 
--Result: [0,1,0] Test with: Eval(SPE,[0,1,0]);

Latest revision as of 13:49, 29 October 2020

This article is about a function from ApCoCoA-1.

SAT.FixBits

Allows to fix chosen bits in advance within a SAT input file. The new input file is sat_fixed.cnf.

Syntax

SAT.FixBits(BitList:LIST, File:STRING)

Description

  • @param BitList: The indeterminates that should get fixed. Format: [[IndetIndex_1,Value_1],[IndetIndex_2,Value_2],...]

  • @param File: File in the SAT directory of the apcocoa folder

Example

-- quadratic system:
Use R::=ZZ/(2)[x[1..3]];
F1:= x[1]x[2] + x[1]x[3] + x[2]x[3] + x[3];
F2:= x[2] + 1;
F3:= x[1]x[2] + x[3];
SPE:=[F1,F2,F3]; 
SAT.ConvertToCNF(SPE,4,0,0);
SAT.FixBits([[1,0],[2,1]],"sat.cnf"); -- fixes x[1]=0 and x[2]=1
SAT.LaunchMiniSat("sat_fixed.cnf");
SAT.GetResult();
--Result: [0,1,0] Test with: Eval(SPE,[0,1,0]);