KousarRaza's picture
Update app.py
74d1a3d verified
raw
history blame contribute delete
911 Bytes
import streamlit as st
from sat_parser import parse_sat
from sat_to_3sat import convert_to_3sat
from three_sat_to_clique import build_clique_graph
from visualize import visualize_graph
from examples import example_formulas
st.set_page_config(layout="wide")
st.title("Interactive Reduction Visualizer for NP-Complete Problems")
st.markdown("""
This tool demonstrates:
- SAT → 3-SAT
- 3-SAT → CLIQUE
""")
formula = st.selectbox(
"Choose example or write your own",
example_formulas() + ["Custom"]
)
if formula == "Custom":
formula = st.text_input("Enter SAT formula:")
if st.button("Run Reduction"):
clauses = parse_sat(formula)
st.subheader("SAT Clauses")
st.write(clauses)
clauses_3sat = convert_to_3sat(clauses)
st.subheader("3-SAT Clauses")
st.write(clauses_3sat)
G = build_clique_graph(clauses_3sat)
st.subheader("CLIQUE Graph")
visualize_graph(G)