Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Round-Robin Scheduler Verification in Coq

A Formal Verification of Scheduling Properties

This project implements and formally verifies a Round-Robin CPU scheduling algorithm using the Coq Proof Assistant.
It models a simplified job scheduling system and provides proofs of correctness, termination, and fairness properties grounded in mathematical logic.


⚙️ Overview

The project defines a minimal representation of jobs—each with an identifier and a burst time—and simulates how these jobs are processed in a round-robin manner based on a fixed time quantum.
It introduces foundational axioms, lemmas, and theorems that collectively prove the algorithm’s soundness.


📘 Key Features

  • 🧩 Formal definition of jobs, job lists, and scheduling operations
  • ⚙️ Implementation of a Round-Robin scheduler (rr_sched)
  • 📏 Proven properties, including:
    • Finite termination – guarantees all jobs complete
    • No starvation – every job gets CPU time
    • Fairness – all jobs are scheduled equally
  • 💻 Written entirely in Coq, with clear logical structure and proofs

🧠 Example Output

Compute example_output.
(* OUTPUT : = ([], [1; 2; 3; 1; 2; 3]) *)

About

A verified Round-Robin scheduling algorithm implemented in Coq, featuring formal proofs for correctness, finite termination, and fairness properties.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages