Example #1
0
def simple_liveness_prooffunc(aig_filename):
    
    def simplify(aiger_in, aiger_out):
        
        saved = utils.save_po_info(aiger_in, tmp[0])
        
        par.read_file_quiet(tmp[0])
        par.pre_simp()
        pyabc.run_command( 'write_aiger %s'%tmp[1] )

        #~ pyabc.run_command( 'read_aiger %s'%tmp[0] )
        #~ pyabc.run_command( 'dc2 ; dc2 ; dc2 ; dc2' )
        #~ pyabc.run_command( 'write_aiger %s'%tmp[1] )

        utils.restore_po_info( saved, tmp[1], aiger_out )
        
    def report_result(id, res):
        
        if res and 'result' in res:
            result = res['result']
            if result=='proved':
                par.report_liveness_result(id, 0)
                return True
            elif result=='failed':
                par.report_liveness_result(id, 1)
                return True
            
        return False

    try:
        run_niklas_multi(aig_filename, simplify=simplify, report_result=report_result)
    except:
        import traceback
        traceback.print_exc()
Example #2
0
def simple_liveness_prooffunc(aig_filename):

    import niklas
    from pyaig import utils

    def simplify(aiger_in, aiger_out):

        with niklas.temp_file_names(2, suffix='.aig') as tmp:

            saved = utils.save_po_info(aiger_in, tmp[0])

            par.read_file_quiet(tmp[0])

            par.pre_simp()

            pyabc.run_command('write_aiger %s' % tmp[1])

            utils.restore_po_info(saved, tmp[1], aiger_out)

            return True

    def report_result(id, res):

        if res and 'result' in res:
            result = res['result']
            if result == 'proved':
                par.report_liveness_result(id, 0)
                return True
            elif result == 'failed':
                par.report_liveness_result(id, 1)
                return True

        return False

    try:
        niklas.run_niklas_multi(aig_filename,
                                simplify=simplify,
                                report_result=report_result)
    except:
        import traceback
        traceback.print_exc()
Example #3
0
def simple_liveness_prooffunc(aig_filename):

    import niklas
    from pyaig import utils

    def simplify(aiger_in, aiger_out):

        with niklas.temp_file_names(2, suffix=".aig") as tmp:

            saved = utils.save_po_info(aiger_in, tmp[0])

            par.read_file_quiet(tmp[0])

            par.pre_simp()

            pyabc.run_command("write_aiger %s" % tmp[1])

            utils.restore_po_info(saved, tmp[1], aiger_out)

            return True

    def report_result(id, res):

        if res and "result" in res:
            result = res["result"]
            if result == "proved":
                par.report_liveness_result(id, 0)
                return True
            elif result == "failed":
                par.report_liveness_result(id, 1)
                return True

        return False

    try:
        niklas.run_niklas_multi(aig_filename, simplify=simplify, report_result=report_result)
    except:
        import traceback

        traceback.print_exc()