Skip to content

Add files via upload #2

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 76 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,76 @@
# P ≠ NP: Connell Super-Complexity Method (2025)

## Abstract
Formal proof of P ≠ NP using the Connell Super-Complexity Method, verified with Coq formalization and supplemental experimental analysis.

## Structure
- /Paper/ — Full LaTeX/PDF paper
- /CoqFormalization/ — Coq project proving P ≠ NP
- /SupplementaryExperiments/ — Python experimental scripts

## Reproducibility
All Coq proofs verifiable using Coq 8.17+.
Python experiments require Python 3.10+.

License: MIT
# plang IDE

plang IDE is a lightweight, user-friendly integrated development environment designed specifically for the plang language. It offers a clean interface, robust code editing features, and a range of tools to enhance the development experience.

---

## Features

- **Code Editing with Syntax Highlighting**:
Edit plang scripts with full syntax highlighting, line numbering, and basic code formatting features.

- **File Management**:
Open, save, and organize your plang projects with an integrated file manager.

- **Integrated Runner**:
Run your plang code directly from the IDE and view the output in a built-in console. No need for external terminals.

- **Debugging Tools**:
Set breakpoints, step through code line-by-line, and inspect variables to identify and fix issues quickly.

- **Customizable Settings**:
Tailor your development environment by adjusting font sizes, themes, and tab widths to suit your preferences.

- **Code Examples**:
Access a library of sample plang scripts and example workflows to help you learn and experiment.

---

## Getting Started

1. **Installation**:
Make sure you have Python 3.9+ installed on your system. Clone this repository and run the following command to install dependencies:
```bash
pip install -r requirements.txt
Launching the IDE:
To start the IDE, run:

bash
Copy
python plang_ide.py
The graphical interface will launch, allowing you to open and edit plang scripts.

Opening a File:

Use the File > Open menu to open an existing plang script.
Make changes and save your work using File > Save or File > Save As.
Running Your Code:

Click the Run button in the toolbar or select Run > Execute from the menu.
The output will appear in the console panel at the bottom of the IDE.
Debugging:

To set a breakpoint, click on the gutter next to the line you wish to pause.
Use the Debug > Step Over or Debug > Step Into menu options to control execution.
Inspect variable values in the variables pane to understand the program’s state.
Customizing Settings:

Adjust font size and theme under Settings > Preferences.
Set your preferred tab width and other code style options.
Included Components
Editor: Syntax-highlighted text editor with line numbers.
Runner: Execute plang scripts directly and view output in the integrated console.
Debugger: Debugging features like breakpoints and variable inspection.
File Manager: Intuitive tools for opening, saving, and managing project files.
Examples: A library of sample scripts and coding patterns for reference.
Settings: A configuration system to customize your development environment.
Example Projects
Browse the Examples tab in the IDE to find sample plang scripts. These examples demonstrate common patterns and best practices. Use them as starting points for your own projects or to learn how different language constructs work.

Contributing
We welcome contributions! If you encounter any issues or have ideas for improvements:

Fork this repository.
Create a new branch (git checkout -b feature-name).
Make your changes and test them thoroughly.
Submit a pull request, describing the purpose of the changes.
24 changes: 24 additions & 0 deletions debugger.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
class Debugger:
def __init__(self):
self.breakpoints = set()

def add_breakpoint(self, line_number):
self.breakpoints.add(line_number)

def remove_breakpoint(self, line_number):
self.breakpoints.discard(line_number)

def clear_breakpoints(self):
self.breakpoints.clear()

def step_over(self):
# Stub for stepping over a line in the debugger
pass

def step_into(self):
# Stub for stepping into a function call
pass

def step_out(self):
# Stub for stepping out of the current function
pass
23 changes: 23 additions & 0 deletions editor.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
from PyQt5.QtWidgets import QTextEdit
from PyQt5.QtGui import QTextCursor, QTextFormat
from PyQt5.QtCore import Qt

class CodeEditor(QTextEdit):
def __init__(self, parent=None):
super().__init__(parent)
self.line_numbers = True
self.init_ui()

def init_ui(self):
# Setup the font and general style of the code editor
self.setFontFamily("Courier")
self.setFontPointSize(10)
self.setTabStopDistance(4 * self.fontMetrics().horizontalAdvance(' '))

def highlight_syntax(self, block):
# Stub for adding syntax highlighting rules
pass

def update_line_numbers(self):
# Handle showing line numbers if needed
pass
24 changes: 24 additions & 0 deletions examples.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
def get_examples():
return [
{
"name": "Hello World",
"code": 'print("Hello, world!")'
},
{
"name": "Basic Loop",
"code": """
for i in range(10):
print("Number:", i)
"""
},
{
"name": "Simple Function",
"code": """
def add_numbers(a, b):
return a + b

result = add_numbers(3, 5)
print("Result:", result)
"""
}
]
19 changes: 19 additions & 0 deletions file_manager.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
from pathlib import Path

class FileManager:
def __init__(self):
self.current_file_path = None

def open_file(self, path):
self.current_file_path = Path(path)
with open(path, 'r') as file:
return file.read()

def save_file(self, content):
if self.current_file_path:
with open(self.current_file_path, 'w') as file:
file.write(content)

def save_as(self, path, content):
self.current_file_path = Path(path)
self.save_file(content)
Loading